_ Nr.7785 Juli
DM 6,50, sfr 6,50,65 50, L115900, Hi 750°
FERNEN
MAGAZIN FÜR APPLE- Bi | &
AZE JSR | BR | 9n0D N
= 56B04 FE ee
A27 | |
O or
E a | 5 JA | hear
A26 \ |
BEE Zu 3 SAAIF are
A25
124 u EE
2Py Bi
j
\22
Fo ma BE ııı
6502 leic + EX
rdstar und
\20
so
Mimird-F -Festplatt el
$ kan be -EPROM
VIE Hüchig
PUBLIKATION
Interfaces für Computer mit Applebus + Interfaces für Computer mit Applebus + Interf:
AP 13 und AP 17
RAM-Karten zum Einsatz als Pseu-
dodisk unter CP/M, USCD und
APPLE-DOS. Speichergröße von
64 kByte bis 256 kByte.
Bestell-Nr.: A 1013 a-b
A 1017 a-d
AP 14
Floppy-Controller für alle Anwen-
dungsfälle. 10 Laufwerke können
gleichzeitig angeschlossen werden.
4 x 8” DSDD, A x 5V4” DSDD und
zwei Apple-Standardlaufwerke.
Maximal ca. 10MByte im Direktzu-
griff.
Bestell-Nr.: A 1014
„ed“ jetzt 512 K-RAM
AP 20
INTEMEX mit 68 000 CPU und 128
k-RAM. Diese Karte macht aus Ihrem
Rechner mit „Applebus” einen ech-
ten 16 bit-Rechner. Eine Zusatzkarte
(AP 26) ermöglicht einen Arbeitsspei-
cher bis zu einem MByte und an Soft-
ware gibt es einiges. Z.B. stehen drei
Betriebssysteme und die wichtigsten
Hochsprachen zur Verfügung.
Bestell-Nr. A 1020
SU SRERRÄRHREN en SS ARE:
REES $ x
ERRICHTET
SEHRSERSESEÄUTURUENNRUH RE RAD S
—
AP 33
RAMDISK der neuen Generation.
Für besonders speicherintensive
Arbeiten ist der Ausbau in Stufen
von 64 kByte bis 1MByte möglich.
Bestell-Nr. A 1033
Re N or ss 5 ERS EEEETTER
S SEÄERIERHTTEEÜHRÜHENEN ER ER ni RR ®
SERRS SEEEEERTATÄTNTUHTNSRN SEE so = u SER x
= nn So SERIEN N
N
RC TTRSIEN RR SE oe BR
SERRHHÄRDÄRNE GSTEN x = S N x
SE 3 RN ER 5
= NN 8
R R
R f} anne}
AP19
12-Kanal AD-DA-Wandler mit 12 bit
Auflösung und 25 u sec Wandlungs-
zeit. Eingangsspannung +10 V. Ein
schneller Wandler für extrem
schnelle Anwendungen.
Bestell-Nr.: A 1019
EIODREIEOTNR
NEU! 8 MHz Takt
AP22
INTEMEX mit Z 80 B-CPU und 64
k-RAM. Wenn Sie einmal diese Karte
in Aktion gesehen haben, werden Sie
auch feststellen: „Geschwindigkeit
ist keine Hexerei, man braucht nur
die AP 22”. Mit dieser Karte wird Ihr
APPLE II zum z.Z. schnellsten CP/M-
Computer, und in Verbindung mit
dem SPACE 84 erhalten Sie Compu-
terleistung, die wirklich einmalig ist.
Wir vermitteln gerne eine Vorführung.
Bestell-Nr. A 1022
Das Interface-Buch von IBS, ein Buch für Alle, die Ihren APPLE II oder Kompatiblen
optimalnutzen wollen. Detaillierte Schaltpläne, Bauteilelisten und Benutzungshinweise
N zu allen IBS-Interfaces finden Sie jetzt in einem Buch vereint. Ausführliche Abhandlun-
\ we” gen über Spezialschaltungen, über Anwendungsmöglichkeiten, über neue Software-
NND welten aber auch über die Grenzen des APPLE II-Systems bestimmen den Wert dieses
Buches.
Für nur DM 8,00 erhalten Sie dieses Buch ab sofort bei Ihrem Computerfachhändler
oder für DM 8,00 + DM 2,00 Versandkosten bei IBS COMPUTERVERTRIEB.
135
cCOMmrULETTLEecHI
Olper Straße 10 - 4800 Bielefeld 14 - Tel.: 0521/444032 - W. Germany
1011 Rose Marie Lane 16 - Stockton CA 95207 - Tel. 209/473 —- 7473 USA
Wenn Sie dieses Heft in Händen halten,
verbringe ich gerade meinen Urlaub in
südlichen Gefilden. Wie das so üblich ist,
nehme ich mir auch dieses Mal wieder
amerikanische Fachliteratur mit, um mich
auf dem laufenden zu halten...
..beispielsweise über Pascal, denn ich er-
warte natürlich, daß viele an unserem Pas-
cal-Wettbewerb teilnehmen werden, der in
diesem Heft ausgeschrieben wird. Beim
letzten Peeker-Wettbewerb über Primzah-
len hatten einige Schulklassen teilgenom-
men, und ich würde mich freuen, wenn
auch bei dem neuerlichen Preisausschrei-
ben wieder einige Klassen ihren „Punkte-
saldo“ einsenden würden. Leider mußte
ich die Kürze des Pascal-Quellcodes in
den „Punktesaldo“ des Wettbewerbs mit
einbeziehen, um „unerlaubte Tricks” zu-
mindest einzuschränken. Dies wird zur
Folge haben, daß völlig „undidaktisch“
aussehende Listings erstellt werden, die
nur entfernt an die ästhetische, übersichtli-
che Strukturierung eines typischen Pas-
cal-Quelltextes erinnern werden. Informa-
tik-Lehrer mögen hier einmal ein Auge
zudrücken.
editorial
Auch wenn für die eigentlichen Fachbei-
träge des Peeker das von der Mehrzahl
der Leser gewünschte hohe Niveau beibe-
halten werden soll, wird mit diesem Heft
eine Serie von meist 16seitigen, in sich
geschlossenen Sonderartikeln beginnen,
die auf Anfänger abgestimmt sind. Neben
dem ersten Sonderteil „6502 leicht ge-
macht“ in diesem Heft sind weitere Über-
sichtsartikel über 68000, Z80, MBASIC,
Pascal und andere Themen in Arbeit. Bei
den großen Spezialserien (Mac-BASIC,
ProDOS, Graf-quattro) ist eine Aufsplit-
tung auf mehrere Hefte aus Platzgründen
unvermeidlich. Ich glaube jedoch, daß ge-
rade dem Anfänger ein vollständiger Son-
derteil in der Form eines Mini-Buches
mehr bringt als eine auf mehrere Hefte
verteilte Serie. Trotzdem würde mich ger-
ne Ihre Meinung hierzu interessieren.
LO sa
Ulrich Stiehl
Impressum
Peeker
Magazin für Apple-Computer
2. Jahrgang 1985
ISSN 0176-9200
© für den gesamten Inhalt
einschließlich der Programme
Dr. Alfred Hüthig Verlag,
Heidelberg 1985
Verleger und Herausgeber:
Dipl.-Kfm. Holger Hüthig
Geschäftsführung Zeitschriften:
Heinz Melcher
Chefredakteur:
Ulrich Stiehl (us) Tel. (06221) 489352
(Bitte nur in redaktionellen Angelegenheiten
anrufen)
Anzeigenleitung:
Jürgen Maurer, Tel. (06221) 489218
z. Zt. gilt Anzeigenpreisliste Nr. 3
Vertriebsleitung:
Ruth Biller, Tel. (06221) 489280
Produktionsleitung: Gunter Sokollek
Gestaltung: Rainer Schmitt
Titelbild: Creative Computer
Service, Mannheim
5 IMPRESSUM
HOBBY
Pyramid Pitty
5 Ein Reaktionsspiel
von Michael Matzat
TECHNIK
Die AP33-Megawrap-RAM-Karte
8 Mit einem RAM-Disk-Driver für ProDOS
von Ulrich Stiehl
Formatter
20 Ein universelles Formatierungsprogramm
von Arne Schäpers
Bit Editor
29 Zeichensatz-EPROMs für die Videx-Karte
von Joachim Klamt
SONDERTEIL
33 6502 leicht gemacht
von Ulrich Stiehl
CP/M
57 Wordstar mit allen FX-80-Schriftarten
von Dipl.-Ing. H. A. Rohrbacher
PASCAL
62 Pascal-Preisausschreiben
KURZBERICHTE
No Orchids for Miss Lisa
67 Lisa und die Folgen
von Ulrich Stiehl
Verlag: Erscheinungsweise: 12 Hefte jährlich,
Dr. Alfred Hüthig Verlag GmbH
Im Weiher 10, Postfach 102869
6900 Heidelberg
Telefon (06221) 489-0
Telex 4-61727 hued d.
Jahresabonnement DM 72,-, einschließlich MwSt,
im Inland portofrei. Einzelheft DM 6,50
Vertrieb Handel:
MZV - Moderner Zeitschriften Vertrieb GmbH
Breslauer Str. 5, Postfach 1123,
8057 Eching b. München,
Tel. 089/3191067, Telex 0522 656
EEKER
MAGAZIN FÜR APPLE-COMPUTER
Erscheinungstag jeweils 1 Woche vor Monatsbeginn.
ASSEMBLER
69 Hex-Dez-Konvertierung für 32-Bit-Zahlen
von Harald Grumser
Vorlesestunde
71 Apple und SAM - ein hilfreiches Gespann
von Dr. Jürgen B. Kehrel
73 LESERBRIEFE
TESTBERICHTE
MEGACORE
76 Festplatte mit 10 Megabytes
getestet von Harald Grumser
77 Star Delta-10 und Grafstar-Interface
getestet von Karl-Walter Bott
78 INSERENTENVERZEICHNIS
SC:80042749 HI: aaa42749 WATER: 06093 L:7
ENDETE
Zahlungen: an den Dr. Alfred Hüthig Verlag
GmbH, D-6900 Heidelberg 1: Postscheck-
konten: BRD: Karlsruhe 485 45-753;
Österreich: Wien 7555888; Schweiz: Basel
40-24417; Niederlande: Den Haag 145728;
Bankkonten: Landeszentralbank Heidel-
berg 67 207 341; BLZ 67200000; Deutsche
Bank Heidelberg 02165041; BLZ
672 70003; Bezirkssparkasse Heidelberg
20451, BLZ 67250020.
‚ Italien: Mailand 47718; Belgien:
Brüssel 723026; Dänemark: Kopenhagen
34969; Norwegen: Oslo 994 24;
Schweden: Stockholm 5477 76-5
Herstellung: Heidelberger Verlagsanstalt
Printed in Germany
Pyramiıd Pitty
Ein Reaktionsspiel
von Michael Matzat
6 Peeker 7/85
Vorbemerkung
Für Liebhaber von Computerspielen brin-
gen wir erstmals im Peeker ein umfangrei-
ches und, wie wir meinen, erstaunlich pro-
fessionelles Hires-Spiel. Erstaunlich des-
halb, weil der Autor, Michael Matzat, ob-
wohl er erst 19 Jahre alt ist, ein lupenrei-
nes Assemblerprogramm geschaffen hat,
das hinsichtlich Schnelligkeit, Vielfalt und
Komfort den meist oberhalb der 100-
Mark-Grenze angesiedelten, kommerziel-
len Apple-Spielen kaum nachsteht. We-
gen des Umfangs — mehrere tausend Zei-
len Quellcode — ist es uns leider nicht
möglich, das Programm abzudrucken. Es
befindet sich als Objekt- und Quellcode
auf der Peeker-Sammeldisk . us
Peeker 7/85
7.94 hobby 44
Spielidee
Peter Pause, oder auch einfach nur Pitt
genannt, kommt als einfacher Tourist nach
Ägypten, wo er, wie soll es auch anders
sein, natürlich eine der Pyramiden be-
sucht, um auf ihr ein kleines Picknick ein-
zunehmen. Als er wieder am Fuße der
Pyramide steht, bemerkt er, daß er seinen
Picknickkorb auf der Pyramide verloren
hat.
Seine Aufgabe ist es nun, die verlorenen
Picknicksachen wieder einzusammeln. Er-
schwerend kommt hinzu, daß die Pyrami-
de schon sehr brüchig ist, man leicht stol-
pern und von der Pyramide stürzen kann.
Doch das ist noch nicht alles! Aus einfa-
chen Rissen in den Stufen der Pyramide
können, ohne daß es Pitt bemerkt, tiefe
Spalten werden.
Spielablauf
Das gesamte Spielfeld enthält eine kleine
und eine große Pyramide und besteht aus
22 Hires-Teilbildern. Um von einem Teil-
bild in ein anderes zu gelangen, braucht
man nur durch einen der 4 Bildschirmrän-
der zu laufen. Sollte dies nicht möglich
sein, so folgt in dieser Richtung kein wei-
teres Teilbild mehr.
Der Computer spielt mit mehreren Geg-
nern gegen Sie. Zunächst jeweils nur mit
einem, aber in den höheren Leveln kön-
nen auch bis zu drei Gegner gegen Sie
antreten.
Ihr erster Gegner ist der Pharao. Er ist
eigentlich ungefährlich, doch trotzdem
sollte man es vermeiden, mit ihm auf der
gleichen oder der nächst höheren Pyrami-
denstufe zu stehen.
Der Falke des Pharaos ist Ihr nächster
Gegner. Achten Sie darauf, daß er Sie
nicht an den Beinen berührt, da Sie sonst
stolpern könnten.
Die Wolke versucht Sie einzuhüllen und
Ihnen somit den Sichtkontakt mit dem Bo-
den zu nehmen.
Am meisten macht Ihnen allerdings die
Hitze zu schaffen. Durch sie verdunstet Ihr
Wasser, und je höher der Level, desto
schneller verdunstet es. Ihren Wasserver-
lust müssen Sie unbedingt auszugleichen
versuchen. In den Löchern, die in fast
jedem Teilbild enthalten sind, kann sich
Wasser befinden. Oder auch nicht! Denn
je höher der Level, desto seltener findet
man gefüllte Wasserlöcher. Wenn ein
Loch kein Wasser enthält, dann kann es
sein, daß .... Aber dies soll hier nicht verra-
ten werden.
Bewertung
Kommen wir nun zur Bewertung. Für je-
den wiedergefundenen Gegenstand gibt
es zwischen 1 und 1000 Punkte. Darüber
hinaus erhalten Sie pro Liter gefundenen
Wassers je einen Punkt und am Ende ei-
nes Levels bekommen Sie pro Liter ver-
bliebenen Wassers jeweils 100 Punkte.
Diese Angaben sind natürlich wie immer
ohne Gewähr!
Bedienung
Das Spiel wird mit
RUN PYRAMID.PITTY
gestartet. In diesem vorgeschalteten Start-
programm können Sie dem eigentlichen
Programm mitteilen, ob Sie über alle Cur-
sor-Tasten verfügen oder nicht. Denn ge-
spielt wird über Tastatur, wobei auf dem
Apple Ile und Ilc die Cursor-Tasten und
auf dem Apple Il Plus neben den Links-
und Rechtspfeil-Tasten die Buchstaben A
und Z die Hoch- und Tiefpfeiltasten erset-
zen. Mit ESC kann das Spiel gestoppt und
mit der Leertaste wieder gestartet werden.
Wenn Sie die mitlaufende Melodie stört,
so können Sie den Lautsprecher mit Ctrl-S
abschalten, da Ctrl-S den Ton auf den
Kassettenausgang legt.
Technisches
Das Spiel ist komplett in Assembler ge-
schrieben und kann trotz seines geraumen
Umfangs (ca. 27K) noch erweitert werden,
beispielsweise mit einer Tabelle der 10
besten Spieler des Tages usw. Aus Grün-
den der Geschwindigkeit, die ja bei Spie-
len sehr wichtig ist, war es leider nicht
möglich, die normalen Möglichkeiten des
Apples zur Darstellung von Grafik, wie
etwa die DRAW-, XDRAW- und HPLOT-
Funktionen zu benutzen. Dies war auch
der Grund, warum ich auf die in professio-
nellen Spielen üblichen Blockshapes —
auch Sprites, Raster- oder Bitmustergrafi-
ken genannt -—, deren großer Vorteil ihre
schnelle Darstellungsgeschwindigkeit ist,
zurückgegriffen habe. Das Programm ent-
hält daher diverse Routinen zum Arbeiten
mit Blockshapes, die man leicht zu einem
ganzen Grafiksystem ausbauen könnte.
Die daraus resultierende Verarbeitungsge-
schwindigkeit hat es mir ermöglicht, die
oben erwähnte Begleitmelodie einzubau-
en, ohne daß sich dadurch die in solchen
Fällen üblichen, ruckartigen Bewegungen
einstellen.
Probieren Sie einmal aus, welchen Spiel-
stand Sie bei Pyramid Pitty erreichen! Bis-
her konnte ich, obwohl ich alle Kniffe und
Tricks in diesem Spiel kenne, „nur“ bis
zum Level 7 vorzudringen.
‘
Die AP33-Megawarp-
RAM-Karte
Mit einem RAM-Disk-Driver für ProDOS
von Ulrich Stiehl
Die neue RAM-Karte AP33 der Firma IBS
in Bielefeld — auch als Megawarp bezeich-
net — kann wahlweise mit 64-KBit- oder
256-KBit-RAM-Bausteinen bestückt wer-
den. Am besten geht man gleich „in die
vollen“ und bestellt die Karte mit den
neueren Chips, denn man kann 4 ver-
schiedene Bestückungsstufen wählen, so
daß der Geldbeutel nicht allzu stark strapa-
ziert wird:
Peeker 7/85
256K (ca. DM 1425,-)
512K (ca. DM 2160, -)
768K (ca. DM ??7?)
1024K (ca. DM 3625,-)
Ein einzelner 256-KBit-Chip oder IC (=
Integrated Circuit) hat übrigens eine Spei-
cherkapazität von 32K. Wenn von einem
xyz-KBit-Chip oder xyz-K-IC die Rede ist,
so teilen Sie xyz durch 8 und erhalten
damit die Speicherkapazität in Kilobytes,
also
256KBit : 8 = 32K, z.B. AP33
64KBit:8 = 8K, z.B. Ile
16KBit:8 = 2K, z.B. Il+
Die voll bestückte AP33 hat damit 32
256KBit-RAM-Bausteine (32 * 32 =
1024K) sowie weitere CMOS-RAMSs für
den Slot-RAM-Bereich (s.u.).
Peeker 7/85
1. AP33-Softswitches
Die mir zu Testzwecken zur Verfügung
gestellte Karte (s. Bild) war zur Hälfte
bestückt (512K). Im Gegensatz zu den
früheren Adressierungsverfahren (Ss.
Peeker, Heft 1/1985, S. 18) hat man bei
der AP33 neue Wege beschritten. Früher
wurden größere RAM-Karten meistens in
einen Adreßbereich der „unteren“ 64K
„gemappt“, z.B. in den Bereich $DOO00-
$FFFF. Dieses Konzept ließ man nunmehr
fallen. Statt dessen gibt es jetzt ein 20-Bit-
Adreßregister (20 Bits, weil 2 hoch 20 =
1.048.576 = 1M = maximale Speicherka-
pazität), das eine lineare Adressierung von
$000000 bis $OFFFFF (= O bis 1.048.576)
erlaubt. Die 20 Bits sind auf 2 volle 8-Bit-
Register sowie die eine Hälfte (= 4 Bits)
eines weiteren 8-Bit-Registers verteilt,
dessen andere Hälfte der Paritätsprüfung
dient. Daneben gibt es noch ein 8-Bit-
Datenregister, das jeweils das zu übertra-
gende Byte aufnimmt.
Poke-Beispiel: Nehmen wir an, wir wollen
das Byte $CC in die Speicherstelle
$00AABB (HHMMLL) der AP33 poken.
Hierzu poken wir zunächst $00 in das
High-Byte, $AA in das Middie-Byte und
$BB in das Low-Byte des 20-Bit-Adreßre-
gister. Nunmehr poken wir $CC in das 8-
Bit-Datenregister, womit $CC in $00AABB
übertragen wird.
Peek-Beispiel: Nehmen wir umgekehrt
an, wir wollen später wieder das Byte $CC
aus der Speicherstelle $00AABB der
AP33 peeken. Hierzu poken wir zunächst
wieder die Adresse in das 20-Bit-Adreßre-
gister und peeken dann den Wert $CC aus
dem 8-Bit-Datenregister.
Paritätsprüfung: In Wirklichkeit ist es et-
was komplizierter. Erstens muß man zwi-
schen der alten 64K-Chip- und der neuen
256K-Chip-Karte unterscheiden. Zweitens
sollte man von der bei der AP33 imple-
mentierten Möglichkeit Gebrauch machen,
die Datenbytes auf Parität zu überprüfen.
Es wird das Verfahren der „Even parity“
(= geraden Parität) verwendet. Gerade
Parität besagt bei einem 8-Bit-Byte, z.B.
%10110110, folgendes: Man zählt die
Einserbits zusammen, hier 5 Einserbits,
und prüft, ob sich eine gerade oder eine
ungerade Zahl ergibt. Da 5 eine ungerade
Zahl ist, wird das Paritätsbit auf 1 gesetzt.
Bei % 11110000 würde sich die Summe 4
ergeben, also eine gerade Zahl, so daß
hier das Paritätsbit auf O gesetzt wird. So-
mit folgt, daß bei gerader Parität die Sum-
me der Einserbits des 8-Bit-Bytes und des
Paritätsbits zusammen immer eine gerade
Zahl ergeben. Wenn man also bei der AP
technik 4.4
20 unter Verwendung der Paritätsprüfung
beispielsweise das Byte % 11000010 von
der Karte liest und das Paritätsbit ist nicht
auf 1 gesetzt, so liegt ein Übertragungs-
fehler vor.
2. AP33 und ProDOS
Die AP33 ist wahrscheinlich die erste gro-
Be RAM-Karte, für die ein RAM-Disk-
Driver für ProDOS entwickelt wurde. Da-
neben liegen die bereits bekannten RAM-
Disk-Driver für DOS 3.3, CP/M und Pascal
1.1 vor, auf die wir aus Platzgründen hier
nicht näher eingehen werden. Der Pro-
DOS-RAM-Disk-Driver wurde im April die-
ses Jahres von Volker Baumgarte entwik-
kelt und mir freundlicherweise von der Fir-
ma IBS als Quellcode zur Prüfung zuge-
sandt. Leider springen einem bei Fremd-
programmen die Fehler leichter ins Auge
als bei eigenen Programmen. Tatsächlich
entdeckte ich prompt einen „Schußlig-
keitsfehler“, der zur Folge hatte, daß die
Blocks 3 und 4 des Volume-Directory nicht
mit den korrekten Vorwärts- und Rück-
wärtszeigern versehen wurden. Dies ist
inzwischen behoben. Sollte ein Leser ei-
nen der ersten Prototypen der Karte zufäl-
lig noch mit dem alten ProDOS-Driver er-
halten haben, so möge er bei der AP33
bitte folgenden Test durchführen:
10 FORX = 1 T051:
20 PRINT CHR$(4) “SAVE XXX "X: NEXT
Sollte hierbei ein I/O-Fehler auftreten, so
fordern Sie bitte die neue Driver-Diskette
an.
Der IBS-ProDOS-Driver (namens INSTAL
oder MEGAWARP) läuft unter allen Pro-
DOS-Versionen, was keineswegs eine
Selbstverständlichkeit ist. Der berüchtigte
Test für die Überprüfung der Blockober-
grenze (maximal 280 Blocks) braucht übri-
gens nicht gepatcht zu werden, weil sich
dieser Test am Anfang des Disk-Il-Drivers
befindet, der bei einem RAM-Disk-Driver
gar nicht zum Tragen kommt. Um den
MEGAWARFP-Driver zu installieren, bootet
man zunächst eine beliebige ProDOS-
Version von der ProDOS-Systemdiskette
und startet dann mit BRUN INSTAL den
Driver von der IBS-Diskette. Das MEGA-
WARP-Programm
(1) fragt nach der Nummer n des Slots, in
dem sich die AP33 befindet,
(2) ermittelt die Bestückung und ob 64-
KBit- oder 256-KBit-Chips vorliegen,
(3) löscht die gesamte RAM-Karte (LDA
#0 STA $000000 bis $OHMMLL),
(4) installiert den Driver ab $Cs00 und
$C800 und
(5) legt das Volume-Directory an.
3. AP33 und Accelerator Ile
Wenn die AP33 beispielsweise im Slot 4
steckt - jeder Slot außer Slot O wäre zuläs-
sig — so beginnt der ProDOS-RAM-Disk-
Driver bei $C400 mit einem JMP nach
8 Bit Daten
Cön3
GAWARP.NEU keine Geschwindigkeits-
vorteile. Ferner sei darauf hingewiesen,
daß unsere Driver nur für die 256-KBit-ICs
gedacht sind und daß auf den Initialisie-
rungsteil verzichtet wurde, der bereits in
INSTAL (= „MEGAWARP.ALT“) enthal-
Clear ey
1
I A19 A17
A18 | A16
a
n = Slot-Nr. +8
$C800, denn neben dem eigentlichen
RAM der AP33 verfügt man bei dieser
Karte über 256 Bytes Slot-RAM ($Cs00-
$CsFF) sowie über I/O-RAM im Bereich
$C800-$CFFE, der mit BIT $CFFF lese/
schreibfähig gemacht wird.
Die Accelerator Ile, die im Peeker, Heft 1/
1984, besprochen wurde, taktet jedoch
von 3,5 auf 1 MHz herunter, wenn Inter-
face-Adressen ($C000-$CFFF) angespro-
chen werden. Deshalb sollte man bei Ver-
wendung der Accelerator Ile in Verbin-
dung mit der AP33 den Driver in einem
Nicht-Interface-Bereich ansiedeln.
Unser Programm „MEGAWARP.NEU“ in
den Versionen MEGAWARP.REL (reloka-
tiv) und MEGAWARP.99YOO (nicht reloka-
tiv) dient diesem Zweck und führt zu einer
Verdopplung der Datenübertragungsrate
(„2 MHz“) gegenüber dem ursprüngli-
chen IBS-Driver („MEGAWARP.ALT).
Die „2 MHz“ erklären sich dadurch, daß
etwa die Hälfte der Driver-Befehle im
schnellen Accelerator-RAM mit ca. 3,32
MHz ausgeführt werden, während beim
eigentlichen AP33-Zugriff auf 1 MHz her-
untergetaktet wird. Man beachte, daß un-
sere Driver nur dann sinnvoll sind, wenn
man neben der AP33 die Accelerator Ile
besitzt, denn ohne letztere Karte hat ME-
10
ten ist. Man starte also erst MEGAWARP.
ALT (mit BRUN INSTAL) und dann MEGA-
WARP.NEU (mit BRUN MEGAWARP.REL
oder BRUN MEGAWARP.9900). Beide
Module befinden sich auf der Peeker-
Sammeldisk, doch ist aus Platzgründen
nur MEGAWARP.9900 gelistet. Wenn die
AP33 nicht im Slot 4 steckt, muß man den
Quellcode entsprechend abändern (La-
bels SLOT4 und SLOTC4)
4. Geschwindigkeitstests
Im einzelnen wurden folgende Geschwin-
digkeitstests durchgeführt:
a) MEGAWARP.ALT mit/ohne Accelerator
b) MEGAWARP.NEU mit/ohne Accele-
rator
c) Apple-Ile-64K-Karte mit ProDOS-RAM-
Disk-Driver mit/ohne Accelerator
Bei der 64K-Karte hängt im Gegensatz zur
AP33 die Datenübertragungsrate davon
ab, welche Bereiche der 64K-Karte beim
RAM-Disk-Zugriff tangiert werden.
Näheres über die Testergebnisse kann
man den Listings entnehmen.
„High-Level“-Test
Dieser Test sollte den BASIC.SYSTEM-
RAM-Disk-Zugriff mit BSAVE und BLOAD
messen. Wenn man von den Seek-Befeh-
len sowie den Directory- und Index-Block-
Zugriffen absieht, wurde als Grobwert 1M
übertragen. MEGAWARP.NEU ist hier ge-
nauso schnell wie MEGAWARP.ALT,
wenn keine Accelerator eingesetzt wird.
LL Schreiben
Unter Verwendung der Accelerator ist die
Datenübertragungsrate jedoch beachtlich
(20.7K/s bei MEGAWARP.ALT ohne AC-
CEL gegenüber 37.9K/s bei MEGAWARRP.
NEU mit ACCEL).
Wie ich dem alten IBS-MEGAWARP-
Driver entnehmen konnte, wurde der
Seek- bzw. Status-Befehl durch „LDA
COMMAND LSR BCC WRITE“ wie ein
Write-Befehl behandelt. Abgesehen da-
von, daß dies „ins Auge gehen” kann,
wird unnötige Zeit vertrödelt. Der nachfol-
gende Spezialtest mag dies verdeutlichen:
10N = 100
20 PRINT CHR$(4)
“RENAME/MEGAWARP,/M"
30 PRINT CHR$(4) “CREATE/M/D,TDIR“
40 PRINT CHR$(4) “PREFIX/M/D“
5SOFORX=1TON:
60 PRINT CHR$(4) “SAVE X"X: NEXT
/OFORX=1TON
80 PRINT CHR$(4) “DELETE X“X: NEXT
Ohne Accelerator benötigt MEGAWARP.
ALT hierfür 67,5s im Gegensatz zu ME-
GAWARP.NEU mit nur 65s. Die Differenz
von 2,5s ist auf den Seek- bzw. Status-
Befehl zurückzuführen.
„Low-Level“-Test
Dieser Test sollte den MLI-RAM-Disk-Zu-
griff mit den Blockread- und Blockwrite-
Peeker 7/85
& Ablage
Bearbeiten Große INJIET)
L.
4
Ce E -
dr i
Die Qualität kommerzieller Arcade-
spiele läßt sich mit APPLESOFT
BASIC alleine nicht erreichen. Jef-
frey Stanton führt in die Eigenarten
der hochauflösenden Apple-Grafik
ein und präsentiert schließlich eine
Reihe extrem schneller Assembler-
Routinen, mit denen Sie viele Effek-
te bekannter Spiele selbst program-
mieren können. Gute BASIC-
Kenntnisse werden vorausgesetzt,
|
a
aundahnnk
Bismarckstr. 67, D- 1000 Berlin 12
—H
/
nz
Pandabooks!
Apple II
Raster Grafik
Jeffrey Stanton
u
7
(030) 342 88 00
Die beiden Autoren haben zusam-
men mehr als 50 Jahre Amateur-
funk-Erfahrung und präsentieren
hier mehr als 20 BASIC-
Programme, die jeden Funkamateur
interessieren: TH-KENNER,
DAMMERUNGSLINIE ‚DX-
RECHNER ‚DOPPEL-FAHN-
DER, NACHWEISSCHREIBER,
ALLZWECK-CONTEST-LOG-
GER, FIELD-DAY-LOGGER,
WETTBEWERB-LOGGER
u.v.a.m. Das Buch enthält die kom-
De Listings für Apple II und
64.
3-89058-027-0 ca.256S. DM 48,--
komplett mit Disk DM 89,--
mm m,
Zeichensatz Stil
GILLEILTAGET
Te
2m
a nad
Gratis!
‚AppleQuick
Das Apple Il-Brevier
fur haufig gebrauchte
Adressen und Befehle!
64 Seiten uber Apple-
soft, D0S, Pascal, CP/M.
Gleich anfordern!
| BASIC-Pro- N
ı gramme fur
Funkamateure
Overbeck
7
nn”
eine Einführung
Handbuch
Worth/Lechner
in Assembler-
Programmierung wird gegeben.
3-89058-006-8 299 Seiten DM 49,--
komplett mit Disk DM 89,--
m ——m nm,
Apple ProDOS |
|
ı
Don Worth und Peter Lechner sind
die Autoren von ‘“‘Beneath Apple
DOS‘“‘, der Bibel aller DOS 3.3-
Benutzer. In ihrem neuen Buch ha-
ben sie sich ProDOS vorgenommen
und mit der ihnen eigenen Gründ-
lichkeit zerlegt. Ausführliche Be-
schreibung der Arbeitsweise, der
Dateitypen, des “MLI‘“ und des
“BASIC SYSTEM“. Das Standard-
werk für jeden ProDOS-Anwender.
3-89058-036-X ca. 250S. DM 46,--
Das Assembler-Lehrbuch für
BASIC-Kenner.
Roger Wagner, der Autor vieler be-
kannter Software-Pakete, schrieb
eine monatliche Kolumne über
Assembler-Programmierung in der
Apple-Zeitschrift SOFTALK.
Der vorliegende Band faßt diese
Reihe, korrigiert und erweitert, zu-
sammen: Eine stufenweise Einfüh-
rung in die Befehle und Strukturen
der 6502-Assemblersprache, mit vie-
len Beispielen von der einfachen
Tongenerierung bis zum Disketten-
zugriff.
3-89058-003-3 277 Seiten DM 48,--
komplett mit Disk DM 89,--
| Apple II
Assembler- ’
Programmierung)!
Roger Wagner
|
|
Peeker 7/85
Visible Computer
Charles Anderson
DEE LEER
Ein Simulationsprogramm, das Sie
in das Innere des 6502 Mikroprozes-
sors führt. Sie sehen auf dem Bild-
schirm, wie die einzelnen Instruktio-
nen in Zeitlupe ausgeführt werden,
wie sich die Register und die Flags
verändern. Ein unverzichtbares
Hilfsmittel beim Erlernen der
Assembler-Programmierung, da-
nach ein wertvolles Werkzeug beim
Testen Ihrer eigenen Programme.
Komplett mit einem 6502 Editor/-
Assembler, deutschem Handbuch
(150 Seiten) und über 30 Beispiel-
programmen.
3-89058-019-X DM 129,--
|
| Apple Il |
Schaltplane ||
Winston D Gavler |
IE
N u
Endlich anspruchsvolle Apple-
Grafik für BASIC-Programmierer.
Mikrocomputer Grafik
Programme, die
nen Konzepte illustrieren.
lation von Grafiken
mationstechnik
3-89058-000-9 292 Seiten DM 49,--
komplett mit Disk DM 89,--
Apple
Pascal Grafik
Tom Swan
beschreibt ‘Hidden Line‘‘- und
“Hidden Surface‘‘-Techniken,
Skalierung, Rotation und Trans-
bietet eine Einführung in die Ani-
|
\
Eine detaillierte Beschreibung der
Apple II und Apple IIplus Schaltun-
gen. Wenn Sie Ihren Apple selbst re-
parieren, Interface-Karten oder
Schaltungserweiterungen entwerfen
oder einfach nur besser über das In-
nenleben Ihres Apple Bescheid wis-
sen wollen - dieses Buch bietet Ihnen
eine Fülle an Informationen, Schalt-
pläne und Zeitdiagramme, Theorie
und praktische Tips.
3-89058-012-2 215S.A4 DM64,-
enthält fast 80 lauffertige BASIC-
die beschriebe-
Mikrocomputer |
Grafik
Roy E. Myers
22 Pascal-Programme, mit denen
Sie die Grafik-Möglichkeiten Ihres
Apple voll ausschöpfen:
“‘Designer‘‘ ermöglicht es Ihnen, ei-
gene Zeichensätze zu entwerfen.
‘‘Gredit‘‘ unterstützt Sie beim Ent-
werfen komplexer Bildschirm-
Grafiken
““Printfoto‘‘ bringt Ihre Entwürfe
aufs Papier.
Darüberhinaus bietet das Buch eine
Fülle fertiger Prozeduren, die Sie
zeitsparend in Ihre eigenen Pro-
gramme einbauen können
3-89058-009-2 280 Seiten DM 49,--
komplett mit Diskette DM 89,--
In allen Buchhandlungen und Computershops oder direkt von:
Pandabooks, Bismarckstr. 67, 1000 Berlin 12, (030) 342 88 00
EEE EM Bestellccoupon BRBRBBBEBEBEBEEBEBBEEE
= Name:
= Anschrift:
O V-Scheck liegt bei
(spesenfreie Lieferung)
O per Nachnahme
(zzgl. Versandspesen)
£
[@]
5
X
N
=
z
Fi
c
o
ie
r-
I
Yv
3
£
J
10]
*
N
&
)
e)
2
“
®
>
u
u
D
<
[e}
J
:O
OÖ
e
<
ou
£
£
®
.
u
:O
232
SH
BEER
11
Routinen messen. Es wurde wie beim
„High-Level“-Test iM übertragen (s.
SPEEDTEST). Während ohne Accelerator
der Geschwindigkeitsunterschied zwi-
schen MEGAWARP.ALT und MEGA-
WARP.NEU praktisch gleich null ist, steigt
mit der Accelerator-Karte die Übertra-
gungsrate überproportional an. Beim
Blockread wurden „nur“ 81.9K/s übertra-
gen, während beim Blockwrite satte 128K/
s erzielt werden konnten. Damit dürfte die
AP33 in Verbindung mit der Accelerator lle
schätzungsweise zehnmal schneller als
die Profile-Festplatte sein, bei der eine
Accelerator praktisch wirkungslos ist. (Es
wäre nett, wenn ein Peeker-Leser, der
eine Profile besitzt, uns seine Meßergeb-
nisse anhand des SPEEDTEST mitteilte.)
5. Fazit
Die AP33 ist eine RAM-Karte der neuen
Generation. Mit 1024K hat man die dop-
pelte Kapazität des „Fat Mac“ (= 512K-
Macintosh), wobei die Mac-512K-Spei-
chererweiterung (Listenpreis!) etwa soviel
wie eine 1024K-AP33 kostet. Nimmt man
noch die Accelerator Ile hinzu, so verfügt
man über traumhafte Übertragungsraten.
Sollte es zufällig einen 68000-Program-
mierer geben, der einen 512K-Mac be-
‚sitzt, so wird er gebeten, uns die Ergebnis-
se des entsprechenden Tests mitzuteilen.
RAM-Disk-Driver
für ProDOS
Allgemeine Richtlinien
Nachfolgend soll unabhängig von der
AP33 und der 64K-Karte, für die bereits
RAM-Disk-Driver vorliegen, kurz charak-
terisiert werden, was im einzelnen beach-
tet werden muß, wenn man einen RAM-
Disk-Driver für eine neue RAM-Karte im-
plementieren will.
Welche Speicherkapazität?
Eine RAM-Karte für ProDOS kann theore-
tisch eine Speicherkapazität von 32M ha-
ben. 64K dürfte jedoch die praktische Un-
tergrenze und 1M die praktische Ober-
grenze sein.
Welcher Slot und Drive?
Sinnvollerweise wird man die RAM-Disk
mit demselben Slot s ansprechen (CATA-
LOG, Ss), in dem die RAM-Karte steckt,
obwohl dies nicht unbedingt erforderlich
ist. In der PRODOS Global Page befinden
12
u EEE
MEGAWARP-Geschwindigkeitstest
MEGAWARP.ALT = Driver der Firma IBS, Bielefeld
MEGAWARP.NEU = unsere Version für Accelerator
a) MEGAWARP.REL (relokativ — nicht selbstmodifizierend)
b) MEGAWARP.990® (nicht relokativ — selbstmodifizierend)
1. ”High-Level”-Test
1.1. BSAVE-BLOAD-Testprogramm
16 * 32768 « 2 für BSAVE/BLOAD = 1.948.576 = 1 Megabyte.
Grobwert ohne Berücksichtigung der Directory- und Index-Blockzugriffe.
1® FOR X = 1 T® 16: PRINT CHR$(4) "BSAVE XXX, A$1000,L$8000": NEXT
20 FOR X = 1 TO 16: PRINT CHR$(4) "BLOAD XXX": NEXT
30 PRINT CHR$(7)
1.2. Testwerte in Kilobytes/Sekunde
MEGAWARP.ALT MEGAWARP . NEU 64K-Karte (1) 64K-Karte (2)
Ohne ACCEL 20.7 20.7 26.2 21.5
Mit ACCEL 25.9 37.9 49.9 35.5
2. ”Low-Level”-Test
2.1. BLOCK-READ/WRITE-Testprogramm
BLOAD SPEEDTEST
CALL -151
303: 80 (für Read-Test)
300G
303: 81 (für Write-Test; zerstört RAM-Disk-Inhalt)
309G
Der Speedtest kann auch für Festplatten und Disk-II-Drives
verwendet werden. Zuvor Parameter (Unit usw.) entsprechend ändern.
ORG $P39®
SPEEDTEST
32 mal 64 Blocks lesen
oder schreiben = 2948 Blocks
= 1M = 1.948.576 Bytes = 2120
ovoısvVukPhuvmdıH-
“*RAKKKAKKH
0300: AcC BA 03 19 JMP START
0303: 80 ll RDWR HEX 8® ;Read (81=Write)
0304: AP 12 UNIT HEX 49 ;S4,D1 (69=S6,D1l)
0305: 20 13 MAL DFB 32 ‚Wieviel mal?
306: 65 99 14 ERSTER DA 191 ‚Erster Block
0308: AA BB 15 LETZTER DA 164 :Letzter Block
030A: AD 03 03 16 START LDA RDWR
030D: 8D 2B 03 17 STA COMMAND
0310: AD BA 03 18 LDA UNIT
0313: 8D 50 03 19 STA UNITNO
0316: AD 05 03 2 LDA MAL
0319: 8D 55 03 21 STA MALCNT
Ö31lC: AD d6 3 22 LOOPI LDA ERSTER
ß31F: 8D 53 03 23 STA BLOCKL
0322: AD 07 03 24 LDA ERSTER+1
0325: 8D 54 03 25 STA BLOCKH
0328: 20 00 BF 26 LOOP2 JSR $BF®® ‚MLI
032B: 89 27 COMMAND HEX 8®
032C: AF 93 28 DA COUNT
ß32E: BB 26 29 BCS ERROR
0330: EE 53 03 39 INC BLOCKL
0333: DB 93 31 BNE SUBTRACT
0335: EE 54 03 32 INC BLOCKH
0338: 38 33 _SUBTRACT SEC
0339: AD 08 03 34 LDA LETZTER
033C: ED 53 03 35 SBC BLOCKL
033F: AD 09 B3 36 LDA LETZTER+1
0342: ED 54 03 37 SBC BLOCKH
0345: B® El 38 BCS LOOP2
0347: CE 55 03 39 DEC MALCNT
034A: D® DP 40 BNE LOOP1
034C: AC 3A FF 41 JMP $FF3A ‚BELL
B34AF: 93 42 COUNT HEX 93
0350: 49 43 UNITNO HEX 4® :S4,Dl
0351: 90 49 44 PUFFER DA $4909 ;-$AlFF
0353: PP 45 BLOCKL HEX 66
0354: BB 46 BLOCKH HEX 699
47 *
0355: 99 48 MALCNT HEX 99
0356: AC DA FD 49 ERROR JMP $FDDA ; PRBYTE
89 Bytes
Peeker 7/85
Wir vertreten unter anderem
folgende Firmen in Deutschland:
PASSPORT @Orange Micro
DESIGNS ınc inc.
)THUNDERWARE INC. (ap Moala
Technologies Corporation
R Mountain Computer Inc.
uud
h
SUDLOGIC
Communications Corp.
Tits
Ile INC.
E
E California Computer Systems
3] Micr. MICROWARE
Händleranfragen erwünscht.
panday@ft Dr.-Ing. Eden
Uhlandstraße 195 - 1000 Berlin 12 - Mo-Fr 10-18 Uhr, Sa 10-13 Uhr
Telefon: 0 30/31 04 23 - Telex: 185 859
o) kan ge Druckerinterfaces für Apple II+/e/
Printer Interface c/IIl Interfaces auf dem neuesten
Stand der Technik. Kompatibel mit allen gängigen Druckern wie:
APPLE, EPSON, STAR, NEC, OKIDATA usw. Passende Treiber-
software wird über Dip-Switch ausgewählt.
Grappler “» Grafikfähiges Druckerinterface
Printer interface das keine Wünsche mehr offen läßt.
Über 2 Dutzend Kommandos ermöglichen die volle Kontrolle
über alle Möglichkeiten Ihres \
Druckers. Jetzt auch mit
lle Features: Double Hires
Grafics und 80 Zeichen Dump
mittels Druckerpuffer nachrüstbar
über Bufferboard.
Grapp « Besitzt alle Vorzüge des Grappler +,
hat aber zusätzlich einen integrier-
ten 16 K Druckpuffer, der auf
32 oder 64. K aufrüstbar ist. ‘
SERIAL Serielles Druckerinterface
Gräppler speziell für den Apple Image-
Printer Interface writer.
Seriell-nach-Parallel-Wandler für
OTLINK den Ilc im Kabel integriert.
wie Hotlink, jedoch zusätzlich
[NRAPPLER C Imagewriter Emulation und Grafik
Software-Diskette.
panday®frt Dr.-Ing. Eden
Uhlandstraße 195 : 1000 Berlin 12 : Mo-Fr 10-18 Uhr, Sa 10-13 Uhr
Telefon: 0 30/31 04 23 : Telex: 185859
Peeker 7/85
ThunderScan."
Ein neues optisches Lesegerät, das beliebige
Vorlagen in MacPaint überträgt: Fotos, Zeich-
nungen, Landkarten und Illustrationen werden
in den Apple-Imagewriter eingespannt und von
einem Lesekopf, der das Farbband ersetzt,
abgetastet.
& File Edit Scanner Tools
ThunderScan’“
Light _Intensity_Gauge
EL 70
Contrast = 110%
SE
Brightness = +10
(Pause)
m
Lines to go: 186
® 32 Graustufen
@® 30 Punkte/cm Auflösung
® Übertragungsmaßstab 25% - ADO %
® Vorlagen bis 20x25 cm ze
@® Nachträgliche Veränderung des Kontrasts
und der Helligkeit. Thunder Sean
Panday®ftı....:s--
Uhlandstraße 195 - 1000 Berlin 12 - Mo-Fr 10-18 Uhr, Sa 10-13 Uhr
Telefon: 0 30/31 04 23 - Telex: 185 859
wir haben die und die
Software... hingehen
Be > _ TRRRRERBERE —__——__[[[_UUUUU_UUUUUU 227 GER BF RRRRRRRRSSSESSRBRRRRRRRHSRENE — >” - Do 7 > - ” ‚=> > $ - V VRODRESRRRNRBNESBEEESEEEEEERE
ALLES FÜR DEN APPLE Il+, Ile, IIc UND MACINTOSH
een ‚Ing. Eder
UHLANDSTR. 195 - D-11000 BERLIN 12
TEL.(O3O) 310 423 -TELEX: 185859
Autorisierter daroia Fachhändler MICROSOFT. Distributor
13
sich ab $BF10-$BFZ2F die Einsprungadres-
sen für die diversen Volume-Driver. Das
Installierungsprogramm muß dort den
Vektor für den entsprechenden Slot und
Drive eintragen, die Device-Anzahl
($BF31) erhöhen und die Device-Liste ab
$BF32 um das Device-Bit-Muster für die
RAM-Disk erweitern (s. „ProDOS für Auf-
steiger“, Bd. 1, S. 51ff.). Eine RAM-Disk
muß mit einem und nur einem Drive ange-
sprochen werden. Befände sich beispiels-
weise die RAM-Karte in Slot 4, so könnte
man zwar bei $BF18 für Drive 1 und bei
$BF28 für Drive 2 quasi einen Doppelein-
trag vornehmen, doch würde dann das
MLI u.U. „durchdrehen“, weil derselbe
Volume-Name für 2 Units gelten würde.
Was bedeutet Formatierung?
Das Installierungsprogramm sollte die For-
matierung als gesonderte Option zulas-
sen, so daß man den Driver nach verse-
hentlichem Neubooten wieder anschlie-
Ben kann, ohne daß der Inhalt der RAM-
Disk zerstört wird. Der 64K-RAM-Disk-
Driver der Firma Apple verfügt leider nicht
über diese Option. Die eigentliche „For-
matierung“ sollte zunächst alle Blocks (=
512-Byte-Bereiche der RAM-Karte) oder
zumindest die Blocks 2-6 auf null setzen
und dann die Blocks 2-6 entsprechend der
Kapazität der RAM-Karte initialisieren.
Blocks 2-5 enthalten das Volume-Directo-
ry. Das Volume-Directory muß 4 Blocks
umfassen, weil sonst das MLI oder das
BASIC.SYSTEM „durchdrehen“ kann.
Auch dies ist von der Firma Apple bei
ihrem 64K-Karte-Driver nicht beachtet
worden, so daß sich einige Anwenderpro-
gramme wie Mailmerger (s. Peeker, Heft
4/1985, S. 73) mit /O-Error oder End-of-
Data „verabschieden“. Ferner muß der
Volume-Bit-Map-Block 6 — bei RAM-Kar-
ten üblicherweise nur ein einziger Block —
angelegt werden. (Ein Beispiel für die An-
lage der Blocks 2-5 findet sich in „ProDOS
für Aufsteiger“, Bd. 2, Kap. 3.5.)
Wohin mit dem Driver?
Die Firma Apple hat für sich die gesamte
64K-Karte „gepachtet“ und einen Teil des
eigenen 64K-Karte-Drivers dort unterge-
bracht, der je nach ProDOS-Version ein-
mal hier und einmal dort liegt. Fremdent-
wickler haben es hier schwerer, da der
Driver nur entweder in dem Bereich unter-
halb vom BASIC.SYSTEM, d.h. unterhalb
von $9A00 (vgl. MEGAWARP.NEU), und/
oder im Interface-Bereich ($Cs00-$CsFF
sowie $C800-$C8FE, vgl. MEGAWARP.
ALT) und/oder auf der RAM-Karte selbst
liegen kann (vgl. 64K-Karte-Driver). Wenn
14
2.2. Testwerte in Kilobytes/Sekunde
MEGAWARP. ALT
MEGAWARP .. NEU
Read Write Read Write
Ohne ACCEL 38.2 53.6 38.3 53.6
Mit ACCEL 40.1 56.6 81.9 128.0
3. MEGAWARP.998® und MEGAWARP.REL für Accelerator-Besitzer
MEGAWARP.99ß® und MEGAWARP.REL sind funktionsgleich. MEGAWARP.9999
ist jedoch nicht relokativ und etwas schneller ("getunt").
l. AP33 (256-KBit-Chips) in Slot 4 installieren
2. ProDOS (beliebige Version) booten
3. BRUN INSTAL (von mitgelieferter IBS-Diskette)
4. BRUN MEGAWARP.99ß® oder BRUN MEGAWARP.REL
Nunmehr hat man eine erheblich gesteigerte Übertragungsrate.
Für andere Slots (als Slot 4) Quellcode entsprechend ändern.
MEGAWARP.REL ist aus Platzgründen nicht gelistet.
l ORG $1FBA
2 *
3 * MEGAWARP. 999
4 ————
5 ”
6 * "Speed-Version" von MEGAWARP.NEU
7 * Nicht relokativ wegen der Label
8 * WRPAGEl und RDPAGE2, deren
9 * Adressen gepokt werden.
19 * Slot-Adresse (hier Slot 4)
11 * modifizierbar.
12 *
13 SLOT4 EQU $49 ‚4x*16
14 SLOTC4A EQU $C499
15 E
16 * Move-Routine
IT “
18 =
19 GETBUFR EQU $BEF5
20 SLDR EQU $BF19
21 COUT EQU $FDED
22 *
23 * 1 Page über Getbuffer-Routine anfordern
24 *
1FBA: AY9 @l 25 LDA #1
1FBC: 28 F5 BE 26 JSR GETBUFR
1FBF: B® 24 27 BCS ERROR
1FC1: C9 99 28 CMP #$99
1FC3: D® 29 29 BNE ERROR
30 *
31 * Driver nach $99ß® oder tiefere Page moven
32 *
IFC5: A® 99 33 LDY #9
1FC7: BY BB 28 34 MOVE LDA $2009,Y ‚fest!
1IFCA: 99 00 99 35 STA $990®,Y ‚fest!
IFCD: C8 36 INY
1FCE: D® F7 37 BNE MOVE
38 *
39 x Slot-Drive-Tabelle nach $C4ß® absuchen
Ad x
1IFDß: B9 10 BF 41 SLDR1 LDA SLDR,Y
1IFD3: AA 42 TAX ;X=LL
1FD4: C8 43 INY
1FD5: B9 1® BF 44 LDA SLDR,Y ;‚ A=HH
1FD8: E® BB 45 CPX #$09 ;LL=ß9?
IFDA: D® 94 46 BNE SLDR2
1FDC: C9 C4 47 CMP #>SLOTC4
IFDE: F® BA 48 BEQ SLDR3
1FEß: C8 49 SLDR2 INY
lFEl: C® 19 59 CPY #$19
lFE3: D® EB 51 BNE SLDR1
1FES: AY 87 52 ERROR LDA #$87 ;Bell
1FE7: 4C ED FD 53 JMP COUT
54 *
55 * GETBUFR-HIMEM in SLDR eintragen
56 .
1FEA: A9 99 57 SLDR3 LDA +#$99 ;$9999
lFEC: 99 18 BF 58 STA SLDR,Y
lFEF: 88 59 DEY
IFF®: A9 99 6% LDA #$99 00
IFF2: 99 18 BF 61 STA SLDR,Y
62 *
63 + In System-Bit-Map die Page $99
64 x als belegt markieren
65 »
IFF5: A9 7F 66 LDA #%@1111111
1FF7: 8D 6B BF 67 STA $BF6B ;$9809-$9FFF
68 *
ccp datentaechnik
FORTH-SYSTEME
FORTH ist eine schnelle Programmiersprache, sie
ermöglicht Programmtransfer zwischen APPLE und anderen
Rechnern.
640 KByte-Drives für den Apple //c!!
@ 5'/4- od. 31/-Zoll-Format (Teac FD55/35-F)
@ FD55-F umschaltbar auf 35/40 Track
® Anschluß an die externe Laufwerkbuchse
@ Durch Einbauplatine (kein Löten) 640 KByte im Direktzugriff
@ Einfache Anpassung für DOS 3.3, UCSD-Pascal und PRODOS
durch menügeführten Patch
© Anpassung von CP/M in Verbindung mit einer Z 80-Zusatzplatine
in Vorbereitung
® anschlußfertig im Gehäuse
Festplatten für Apple Il (//e)
@ 51/4 Zoll-Format (Slimline)
@ Booten direkt von der nu. in DOS 3.3, UCSD-Pascal,
PRODOS und CP/M 2.2 / 3.0
@ Gemischtbetr. mit 35/40/80/160 Track-Drives
@ Copy- und Install-Programme im Lieferumfang
@ Umfangreiches Manual
®@ z. B. 12 MB form. incl. Netzteil u. Contr.,
anschlußfertig an Ihren Apple DM 3835,—
640 KByte-Drives für Apple Il (//e)
@ 5'/4- od. 31/2-Zoll-Format (Teac FD55/35-F)
@ FD55-F umschaltbar auf 40 Track (Apple kompatigel)
@ Installationssoftware für DOS 3.3, UCSD-Pascal, CP/M 2.2,
CP/M 2.23 (60K), PRODOS, AP22, ALS CP/M+
@ Umfangreiches Handbuch
® Anschlußfertige Auslieferung incl. Contr. und 2 Drives
@ Diskstation 55ll (2 Teac FD55-F, 1.22MB) . . . DM 1498,—
@ Diskstation 3511 (2 Teac FD35-F, 1.22MB) . . . DM 1580,—
Alles für Ihren Apple
Info bei:
ccp-datentechnik
Herderstraße 12 — 2000 Hamburg 76
gm MICROMINT
LLTREFFER 2
Be
LASAR 16 u
IBM 256 K, 2 x TEAC BFDD, Contr. ( HAKITIA BE)
color Graphik, Multifunktionscard,
Newzeiisn 4.6785
Unser Buchangebot zu FORTH:
Programmieren in FORTH v. Leo Brodie dt. 48,— DM
Thinking FORTH v. L. Brodie engl. 65,— DM
Mastering FORTH, Einführung in F83 78,— DM
FORTH Encyclopedia 98,— DM
Expertensystem in FORTH 98,— DM
FORTH-Programme für APPLE IlV/e/c/+:
fysFORTH 0.3 mit 600seitigem Handbuch 198,— DM
MasterFORTH83 v. Micro Motion Grundsys. 398,— DM
Floatingpoint, Hires, Modules 350,— DM
LMI FORTH unter PRODOS für Ile/c mit
Banksupport, Editor, Tools in Kürze 1b. 398,— DM
FORTH-Programme für APPLE Macintosh:
NEON! v. Kriya Systems, Objektorientierte
Programmierung, Einführungspreis 999,— DM
Mac FORTH v. Creative Solutions ab 680,60 DM
MasterFORTH83 v. Micro Motion Grundsys. 498,— DM
Floatingpoint und Modulesextension 398,— DM
FORTH-SYSTEME Angelika Flesch
Pf. 1226, 7820 Titisee-Neustadt, Tel. 07651/1665
L ASAR ZE a Weil wir Ihren IMac professionell von 126KB auf
ns Dan j 512 KB umrüsten.
| 290; Schicken oder bringen Sie uns Ihren Computer. Wir
Außerdem volles Rückgaberecht innerhalb garantieren die Rucksendung innerhalb 24 Stunden.
14 Tagen ohne Begründung.
Apple | IBM Nach der Umrüstung haben Sie bei uns 1/2 Jahr
@ Mehrzweckklappgehäuse It. Abb. 147,— | 147,— Garantie!
® Schaltnetzteile Apple5 A/IBM 15 A 115,— | 238,—
® Profitastatur dtsch. LASAR 2000 291 ,— | 291,— 2 i 2 R 2
© interface ab 75,- | 148,- Wır vermitteln Ihnen auch gerne einen Händler in
@ Monitor 22 Mhz incl. Fuß, bernstein 289,— | 289,— Ihrem Raum, der Ihnen unsere Umrüstung einbaut.
Kaufgarantie/Tiefstpreisgarantie/1A Qualität: 100 % kompatibel inkl. Systemsoftware
Made by Micromint: Apple li 495,-, Apple lie 695,-, IBM 895, Fertigplatinen. Tragbare RR .
Gehäuse für 7-Zoll/9-Zoll-Monitore 595,- DM inkl. Tastaturen. Winchester 27 MB auf Der Preis ü Dım 1467.00 incl. MWST .
Anfrage 1A First Class Controller bis 140 MB 935,- DM.
Generalimporteur MICROMINT Computer GmbH
Be a 2 : nn Erkrath 2 GP) FD al, Ping later. a
02104/3 30 24 it a) mas, ral:0211=>773270
Peeker 7/85 15
der Driver im Slot-Bereich $Cs00-$CsFF
liegt, muß dafür Sorge getragen werden,
daß nach PR#s nicht der Driver aktiviert
wird (vgl. MEGAWARP.ALT). Zumindest
sollte man bei $Cs00 einen Sprung zu
einer Fehlerroutine implementieren, etwa
BIT $C082
JMP $FF59 (Reset)
(vgl. hierzu Peeker, Heft 5/1985, S. 14,
„SLOTRAMDISK“).
Welche Parameter auswerten?
Vor dem Sprung zu dem RAM-Disk-Driver
sind vom MLI in der Zeropage folgende
Werte abgelegt worden:
$0042: Befehl (O=Seek,
2=Write, 3=Format)
$0043: Unit-Nummer (z.B. 40 für S4, D1)
$0044: LLHH des 512-Byte-l/O-Puffers
$0046: LLHH der Blocknummer
(vgl. hierzu Peeker, Heft 5/1985, S. 59,
„DISKDRIVER.DEMO“)
Den Vergleich der vorgegebenen Uhnit-
Nummer mit der eigenen Unit-Nummer ist
normalerweise entbehrlich.
Die Blocknummer sollte bei Bedarf mit
dem zulässigen Blockbereich aufgrund
der Belegung der RAM-Karte verglichen
werden, um ein „Durchdrehen“ beim
„Low-Level“-Zugriff zu vermeiden. Weder
MEGAWARP noch der 64K-Karte-Driver
nehmen hierauf Rücksicht, so daß bei-
spielsweise der 64K-Driver beim Block-
read im Bereich Blocknummer $0004-
$0007 nur noch „Schrott“ liest.
Die Startadresse des //O-Puffers wird man
als korrekt annehmen müssen, da das MLI
vor dem Sprung zum Driver bereits Sy-
stem-Bit-Map-Konflikte überprüft hat.
Von den 4 möglichen Befehlen sind Seek
und Format auszufiltern. Bei Seek kehrt
man mit CLC und Akkumulator = $00
(„kein Fehler“), bei Format mit SEC und
Akkumulator = $27 („\/O-Fehler“) zurück.
Bei Read wird der entsprechende RAM-
Disk-Inhalt in den I/O-Puffer übertragen,
während bei Write der I/O-Puffer-Inhalt in
‘den entsprechenden RAM-Disk-Bereich
transferiert wird. Danach wird der Driver
mit CLC und Akkumulator = $00 ver-
lassen.
1=Read,
Wie transferieren?
Das eigentliche Übertragen der Daten ist
die Hauptaufgabe des RAM-Disk-Drivers,
die jedoch nicht generell beschrieben wer-
den kann, da sie von der Implementierung
der Softswitches der Karte abhängt. Man
beachte jedoch, daß vor dem Sprung zum
Driver die Language-Card eingeschaltet
worden ist (bei den momentanen Pro-
DOS-Versionen Bank 1 = $C08B, bei
16
IFFA:
IFFC: 8D FB BE
IFFF:
A9 95
60
: A5 46
: 8D Cl
:A5 47
: 89 19
: 8D C2
.
KEERKKKKKTK TFT TKI TKI FI KK KK a 8
ADRLREG
ADRMREG
ADRHREG
DATAREG
*
*
*
*
*
*
*
*
*
*
“ER R *
Boot-HIMEM auf $9509 setzen
LDA
STA
RTS
ORG
+$95
$BEFB
:$950®
;$1IFFF!!!
$9999
Megawarp-ProDOS-Driver
Originalversion von Firma IBS, Bielefeld.
Umgeschrieben und gestrafft für Driver
außerhalb des $C8ß®ß-Bereiches.
Mit Accelerator größere Übertragungsrate.
U.Stiehl/25.905.1985
Command: ®®
Öl
Seek
Read
Write
Init
Slot 4, Drive 1
a
av)
a u u u |
Es gibt 1 2@-Bit-Adreßregister
1 4-Bit-Parity-Register
1 8-Bit-Datenregister
Par. HH MM EL
7654 .... 3210 FEDCBA9Y8 76543219
C082+SP9 CO81+Sß CPOSP+SP
Datenr.
76543210
CO83+SQ
Das Datenregister besteht aus 2® Bits:
8-Bit-ADRLREG. = Bits ß-7
8-Bit-ADRMREG. Bits 8-15
4-Bit-ADRHREG. = Bits 16-19
(Die 4 restlichen Bits dienen Paritätsprüfung)
Dies entspricht 2 hoch 2® = 1 Megabyte
Die Blocknummern im Bereich $P9P0-$07FF
werden wie folgt umgerechnet (Beispiele:)
Block $P000 -> $PP@WRp HHMMLL Adreßregister
Block $0001 -> $000200 HHMMLL Adreßregister
Block $0002 -> $0004A0® HHMMLL Adreßregister
Block $07FF -> $QFFEß® HHMMLL Adreßregister
EQU
EQU
EQU
EQU
$CO80+SLOTA
$CO81+SLOT4A
$C082+SLOT4
$Cc083+SLOT4A
Blocknummer -> ADRMREG-ADRHREG
Y-Register -> ADRLREG
LDA BLOCKL ‚520909!
ASL
STA
LDA
ROL
ORA
STA
ADRMREG
BLOCKH
+2700010000 ;Parity-Bit on
ADRHREG
Read/Write/Seek/Format?
LDA COMMAND
BEQ OKAY ‚Seek
CMP_ #$93 ;Format
BEQ FEHLER
LSR ‚C=1=Read
LDX #2 ‚2 Pages
LDY #9 ; Y=ß
BCS RDPAGE® ;C=1=Read
Schreibvorgang
l. Ggf. Bit 4 von ADRH auf 1 setzen
für Paritätsprüfung (ORA #+%PPd1P009)
. Umgerechnete Blocknummer in
ADRL-, ADRM- und ADRH-Register poken
3. Datenbyte in Datenregister poken
Lab)
Peeker 7/85
späteren ProDOS-Versionen evtl. Bank 2
= $C083), so daß sich nach dem Rück-
sprung vom Driver der LC-Read/Write-Zu-
stand nicht geändert haben darf. Einer der
Gründe für den Read-Write-Enable-Zu-
stand der LC liegt darin, daß sich der MLI-
interne I/O-Puffer für den Directory-Block
usw. in der LC befindet. RAM-Karten, die
in den Bereich $D000-$FFFF „gemappt“
sind (z.B. AP17 der Firma IBS), haben es
hier besonders schwer. Dies gilt auch für
die Übertragung eines Blocks von der LC
der 64K-Karte in die LC des Mother-
boards. In beiden Fällen ist eine Zwi-
schenpufferung erforderlich, die die Über-
tragungsrate entsprechend vermindert.
Weitere Features?
Neben den skizzierten Grundfunktionen
eines RAM-Disk-Drivers sind noch weite-
re Features denkbar. Beispielsweise
könnte man den Format-Befehl implemen-
tieren, so daß die RAM-Disk neu initiali-
siert werden könnte. Da jedoch das BA-
SIC.SYSTEM den alten INIT-Befehl nicht
unterstützt, wird man ihn wohl auch bei
RAM-Karten nicht vorsehen müssen.
Ferner wäre es denkbar, daß man eine
RAM-Disk mit PR#s bootet. Auch dieses
Feature ist entbehrlich, weil unter ProDOS
bereits der Reboot-Befehl - im BASIC.SY-
STEM „BYE“ genannt — vorgesehen ist.
Bei großen RAM-Karten ist es denkbar,
daß man ähnlich wie bei Festplatten ge-
trennte Bereiche für DOS 3.3, ProDOS,
Pascal und CP/M einführt. Da jedoch der
RAM-Disk-Inhalt nach dem Ausschalten
des Apple gelöscht wird, dürfte sich die
Mühe für eine derart diffizile Konfigurie-
rung nur bei Spezialanwendungen lohnen.
Für Ilc und Ile mit 64K-Karte
SUPERPLOT
Double-Hires-Utility
9962: 8A
9963: 18
9964: 6%
9965: A9
9967: 38
9968: BP
176 Bytes
WRPAGE® LDA PUFFERL
STA WRPAGEI+1
LDA PUFFERH
STA WRPAGEI+2
WRPAGEl LDA $FFFF,Y ; Dummy!
STY ADRLREG
STA DATAREG ;A->Megawarp
INY
BNE WRPAGEI
INC WRPAGEI+2
INC ADRMREG
DEX
BNE WRPAGELI
BEQ OKAY
*
* Lesevorgang
* l. Umgerechnete Blocknunmer in
* ADRL-, ADRM- und ADRH-Register poken
* 2. Datenbyte aus Datenregister peeken
* 3. Ggf. Bit 4 von ADRH auf 1 prüfen
* wegen gerader Parität (BIT ADRH)
%*
R
DPAGE®O LDA PUFFERL
STA RDPAGE2+1
LDA PUFFERH
STA RDPAGE2+2
RDPAGEl STY ADRLREG
LDA DATAREG ;Megawarp->A
RDPAGE2 STA $FFFF,Y ; Dummy '!
*
* Wegen der Parity-Prüfung ist Blockread ca. 59%
* langsamer als Blockwrite. Dies gilt jedoch nur für
* den Low-Level-MLI-Zugriff. Ansonsten ist z.B. BSAVE
* langsamer als BLOAD!
*
BIT ADRHREG ‚Parity=1?
BMI FEHLER
INY
BNE RDPAGEIl
INC RDPAGE2+2
INC ADRMREG
DEX
BNE RDPAGELI
*
* Fehler?
*
OKAY ;X=ß=okay
‚okay
ENDE
FEHLER ‚I/0-Error
‚nicht okay
von Karl-Walter Bott, 1984, Programmdiskette und Manual, DM 48,—
SUPERPLOT ist eine neue, ungewöhnlich kompakte und schnelle Ampersand-Utility für Double Hires, die einschließlich eines
vollständigen ASCII-Shape-Zeichensatzes wahlweise in Bank 1 oder Bank 2 der Language Card liegt und damit sowohl unter
ProDOS als auch unter DOS 3.3, falls letzteres in die LC-Bank geschoben wurde, benutzt und in eigene Applesoftprogramme
integriert werden kann. SUPERPLOT unterstützt die üblichen HGR-Befehle, denen lediglich ein & vorangestellt werden muß,
also z. B. & HPLOT 500, 100 TO 500, 150 usw. SUPERPLOT ist speziell für das Plotten von beschrifteten wissenschaftlichen
Funktionskurven mit hoher Auflösung gedacht und weniger für HGR-Spiele.
Hüthig Software Service - Postfach 102869 - 6900 Heidelberg 1
Peeker 7/85
17
Betriebssystem CP/M
Vom Monitorprogramm zum
Mehrbenutzersystem.
Von Jürgen Plate.
1984, 351 Seiten, 30 Abb.,
3 Tab., geb., DM 56,-
Das Buch beschreibt ausführ-
lich die Kommandos, ihre
genaue Syntax und die einzel-
nen Teilprogramme von CP/M
wie BIOS (systemspezifischer
Teil), ED (Editor), ASM (Asem-
bler, inklusive einer Beschrei-
bung des 8080-Befehlssat-
zes), SYSGEN und STAT.
Der Beschreibung von CP/M
ist das Listing eines komfor-
tablen Monitorprogramms für
Z-80-Computer vorangestellt,
das eine elementare Program-
mierung auf Maschinenebene
erlaubt, solange man CP/M
noch nicht geladen hat. Das
kann z. B. zur Fehlersuche
sehr nützlich sein. Am Schluß
des Buches findet sich auch
eine Kurzbeschreibung der
Multitasking-/Multiuser-
Betriebssysteme.
Das Buch zum Apple Il
von Erich Esders
1985, 210 S., 119 Abb., geb,
DM 54,—
Wenn hier vom Apple Il
gesprochen wird, so gilt das
auch für den Ilplus, den lleuro-
plus und die lle-Versionen
sowie für den ganzen „Apple-
Nachbau“. Das Buch ist ein
Wegweiser durch diesen
Rechner, um mit ihm schneller
und effektiver zu arbeiten. Es
geht hier weniger um das ele-
mentare Programmieren des
18
Rechners, sondern um
Assemblerprogramme, die
extensiv Monitor-ROM-
Subroutinen benutzen. Diese
hat der Autor nach Sach-
gebieten geordnet, z. B.
Mathematik, Graphik, String-
Bearbeitung + Disassembler-
Listings und diese wiederum
mit Erklärungen und Applika-
tionen komplettiert. Eine aus-
reichende Dokumentation ist
dabei immer gewährleistet. Sie
geht schrittweise vor, von der
Aufgabenstellung über die
Programmentwicklung bis zum
lauffähigen Maschinenpro-
gramm. Die angebotenen Bei-
spiele sind ausbaufähig und
lassen der eigenen Kreativität
reichlichen Spielraum. Viele
neuartige Tips und Tricks wird
auch der beschlagene Apple-
Benutzer begrüßen.
Aus dem Inhalt:
Der Mikroprozessor des
APPLE Il. Der APPLE II und
seine Speicheraufteilung.
APPLESOFT und seine
Arbeitsspeicher-Bereiche. Der
MICROSOFT-Basic-Inter-
preter: Die Zeichen-Lese-
Routine. Interpretierer und
Lokalisierer. Handler-Routi-
nen. BASIC/Maschinen-
sprache-Interfaces.
DISAS-Generator. Unterpro-
gramme im APPLESOFT-
Basic-Interpreter: Softschalter
und -Flags. Ausdrucks-Inter-
pretierer. Low-Resolution-
Graphik. Fehler-Behandlung.
Applikationen: Arithmetik-
Demonstration „FP-CALC“,
Hex-Dumps der Applikationen.
BASIC-Monitor BASMON/D:
Vorstellung der neuen Kom-
mandos. Das Programm
„BASMON/D“. Implementie-
rung und Laufbeispiele.
BASIC-Interpreter-Vergleich
APPLE Il - Commodore 64:
Arithmetik-Demonstration
„FP-CALC/64“. Listen: Die
Token des APPLESOFT-Basic.
Apple II ROM Listing
von Matthias Buck
1984, 116 S., Kart., DM 59,-
@appie II
ROM
EITIWTTUITCITITILTUTCT UI
Listing
|
I für Appiesoft-BASIC- |
Interpreter
von Matthias Buck
|
syılat
KÜrla)
ighistieieligiigt R
u Valaauıls
N
vs "
u RE
MIKROCOMPUTER
Das deutsche Apple-II-ROM-
Listing ist da!
Einleitung zum prinzipiellen
Ablauf des Applesoftinter-
preters:
® Aufbau und Verarbeitung
der/des Programmtextes -
Variablentabelle - String-
space - Fließkommaformate
- Basicstacks (GDSUB,
FOR-NEXT, ...)
® Beschreibung der wichtig-
sten Unterprogramme, z. B.
Variablensuche, Garbage
collection, Ausdrucksaus-
wertung, CHRGET, ...
® Vollständig disassemblierte
und sehr ausführlich
deutsch kommentierte Auf-
listung des Applesoft-
BASIC-Interpreters
® Übersichtliche Auflistung
aller vom Interpreter benutz-
ten RAM-Zeilen mit allen
Verwendungszwecken
® Über 150 ausführlich doku-
mentierte Unterprogramme:
- Funktion
- Ein/Ausgabeparameter
Auch für Apple-lle und c und
Kompatible!
Apple ll Pascal
Eine praktische Anleitung
von Arthur Luehrmann und
Herbert Peckham
1982, 544 S., kart., DM 59,-
ArBLE
PASCAL „
Dieses Buch ist unentbehrlich
für alle, die die Programmier-
sprache PASCAL lernen
wollen und Zugang zu einem
Apple Computer haben.
Sie benötigen keinerlei Vor-
kenntnisse, sondern lernen an
Hand von Beispielen und
Ubungen, wie man selbst
PASCAL-Programme entwik-
kelt und sie austestet und
werden allmählich von Kapitel
zu Kapitel vertrauter im
Umgang mit dem Apple
Computer.
Start mit Apple-Logo
für II, He und Ilc
Das kleine Logo-Einmaleins:
Grafik » Text «+ Musik
VonD. Senftleben
1985, 222 Seiten, DM 35,-
Viele Mikrocomputer-Her-
steller bieten für ihre Geräte
neben BASIC und anderen
Programmiersprachen
zunehmend auch Logo an.
Durch ihre Benutzerfreund-
lichkeit hat diese Sprache
bereits viele Freunde im
Ausbildungs- und Freizeitbe-
__ Dietrich Senitleben
Start mit,
Apple-Logo für
Apple Il, Ile und Ile
NASSEN
es
reich gefunden. Dabei ist
Logo eine mächtige
Sprache, die auch dem
anspruchsvollen Anwender
kaum Wünsche offenläßt.
Mittels Schildkrötengrafik
wird das kleine Logo-Einmal-
eins in 12 Lektionen entwik-
kelt. Große Bildschirmfotos
begleiten den Leser durch
die Lektionen. Das Buch ver-
langt aktive Mitarbeit. Es hat
seinen Platz neben dem
Computer und gibt Hilfen
und Anregungen für eigenes
Forschen. Dank des bau-
steinorientierten Konzepts
kann jeder seine eigenen
Teilbausteine erzeugen und
sie zu neuen Blöcken
zusammenfügen. Neben
dem Einmaleins werden
neue Einsatzbereiche für
den Einsteiger erschlossen.
Musik und Sound fehlen
nicht.
In diesem Buch werden die
beiden offiziellen Logo-Pro-
dukte der Firma Apple für die
Rechnerfamilie Apple Il, Ile
und lic behandelt und deren
Unterschiede verdeutlicht.
Weiterhin sind sämtliche
Apple-Logo-Vokabeln über-
sichtlich zusammengestellt.
Dieses Buch ist ideal zum
problemlosen und vergnüg-
lichen Start in die Apple-
Logo-Welt.
Apple Il
Anwenderhandbuch
von Lon Poole
1982, 450 S., zahlr. Abb.,
kart., DM 56,-
Auch für diesen Computer
haben wir den richtigen Leit-
faden. Er erspart Ihnen zeit-
raubendes und nutzloses
Suchen nach der wirklich
verwendbaren Dokumenta-
tion für Ihren Computer. Das
Anwenderhandbuch
beschreibt zum einen den
beliebten Apple II-Computer
als solchen und gibt zum
anderen ausführlich Aus-
kunft über die normalen
Peripheriebausteine und
Zubehör einschließlich Disk-
Laufwerken und Drucker. Mit
Hilfe dieses Buches werden
Sie Ihren Apple Il erfolgreich
einsetzen, denn der Informa-
tionsgehalt geht weit über
das hinaus, was hersteller-
seitig an Literatur angeboten
wird. Sie lernen BASIC auf
zwei verschiedene Arten zu
verwenden. Wie man den
Gebrauch von Klang, Farbe
und Grafik zum Optimum
führt. Sie erhalten Tips für
fortgeschrittene Programm-
erstellung. Sie erfahren die
Verwendung des Maschi-
nensprachen-Monitors
u.v.m. Mit dem Apple Il-
Anwenderhandbuch werden
Ihnen alle Möglichkeiten
eröffnet, die in diesem Com-
puter stecken.
Apple li Pascal
Sprache
1985, 197 S., DM 39,-
Apple Il Pascal
Betriebssystem
1985, 256 S., DM 49,-
Peeker 7/85
BucA-S5HOP
Apple DOS 3.3
von Ulrich Stiehl
2. Aufl. 1984, 203 S., kart.,
DM 28,-
Dies ist die erste deutschspra-
chige Darstellung des Disket-
tenbetriebssystems DOS 3.3
für den Apple Il/II Plus/lle, die
sich sowohl an Applesoft- als
auch an Assembler-Program-
mierer wendet. Sinngemäß ist
das Buch zweigeteilt:
Der erste Teil behandelt aus-
führlich die dem Applesoft-Pro-
grammierer zur Verfügung ste-
henden DOS-Befehle, wobei
die Textfiles wegen ihrer gro-
Ben Bedeutung und der ver-
gleichsweise komplizierten
Handhabung besonders darge-
stellt werden. Viele Textfile-
Tricks werden hier zum ersten-
mal geschildert.
Aber auch im zweiten Teil fin-
det der reine Applesoft-Pro-
grammierer insbesondere in
dem Kapitel „Vermischte Tips,
Tricks und Patches“ zahlreiche
Anregungen. Im übrigen ist der
zweite Teil für Assembler-Pro-
grammierer gedacht. Neben ei-
ner detaillierten Beschreibung
der DOS-Interna enthält dieser
Teil elf vollständige RWTS-An-
wenderprogramme - z.B.
CPM-Refiner, DOS-lose Da-
tendisk, TSL-Maker, File-
Reader, Pseudo-Disk-Driver
und Fastbrun-Routine —, die
Techniken enthüllen, die bis-
lang noch niemals publiziert
worden sind. Dieses DOS-
Buch ist deshalb der unent-
behrliche Begleiter für jeden
Apple-Programmierer.
Apple Il
Basic Handbuch
von Douglas Hergert
304 Seiten, 116 Abb.
DM 32,-
Das Buch ist als Nachschlage-
werk konzipiert, daß seinen
Platz neben jedem APPLE Il,
II+ und Ile haben sollte. Es
richtet sich an Anfänger und
fortgeschrittene Program-
mierer.
BASIC
HAND
518,8; |
BnHergert
Aus der Praxis heraus präsen-
tiert der Autor Tips und Vor-
schläge, die das Programmie-
ren leichter und zugleich effi-
zienter machen. Alle Applesoft-
und Integer-BASIC-Begriffe
sind alphabetisch aufgelistet
und werden eingehend erklärt.
Peeker 7/85
Dazu werden alle DOS-Befehle
(neben vielen Begriffen der
Computerterminologie) vorge-
stellt.
Beispielprogramme zeigen
dem Nutzer, wie jeder Befehl
funktioniert und helfen, die rich-
tige Anwendung zu üben. Un-
ter anderem lernt der Leser
den besten Weg, um FOR/
NEXT-Schleifen und IF/THEN-
Entscheidungen für seine
Zwecke einzusetzen.
Durch die präzise und leicht
verständliche Sprache des Au-
tors werden auch schwierige
Befehle einfach in der Anwen-
dung.
Apple Maschinen-
sprache
von Don und Kurt Inman
1984, 208 S., zahlr. Abb. und
Tabellen, DM 49,—
Dieses Buch ist wahrscheinlich
die beste Einführung in die
6502-Programmierung für den-
jenigen Assembler-Anfänger,
der zuvor noch nie ein Maschi-
nenprogramm geschrieben
hat.
Aus dem Inhalt:
Applesoft II BASIC - kurzge-
faßt — Alles über Zeichen - Al-
les über Speicher - Alles über
Maschinenbefehle — Maschi-
nenprogramme mit BASIC ein-
geben - Graphik — Text- Ton-—
Arithmetik — Was tun mit den
Maschinenprogrammen
Apple Il
leicht gemacht
von Joseph Kascmer
1984, 185 S., zahlr. Abb., kart.,
DM 28,—
Dies ist ein Buch, wie es sich
jeder Apple-Anfänger nur wün-
schen kann: Schrittweise,
leichtverständliche Anleitung
zum Umgang mit dem Apple
mit einigen durchsichtigen, un-
komplizierten Beispielen in Ap-
plesoft, die ihn nicht Abschrek-
ken, sondern ermutigen sollen,
sich mit dem Gerät näher ver-
traut zu machen. Damit ist „Ap-
ple Il leicht gemacht“ das idea-
le Einsteigerbuch für den rei-
nen Anwender, der nicht nur
„auf den Knopf drücken“, son-
dern zumindest einige Details
aus der Black Box namens Ap-
ple erfahren will.
Aus dem Inhalt:
Kontrolle des Geräts — Schrei-
ben und Zeichnen auf dem
Bildschirm — Geheimnisvolle
Abläufe: Programme - Ver-
schiedene Eingriffsmöglichkei-
ten — Mobile Speicher: Disket-
ten - Kontrollmöglichkeiten —
Das Innenleben
Apple Assembler
Tips und Tricks
von Ulrich Stiehl
1984, 226 S., 3 Abb., kart.,
DM 34, —
„Apple Assembler“ wendet
sich an alle, die bereits Anfän-
gerkenntnisse der 6502-Pro-
grammierung haben - z.B.
aufgrund des Buches „Apple
Maschinensprache“ — und nun-
mehr ein Nachschlagewerk für
ihren Apple Il Plus/lie/lic su-
chen, in dem alle wichtigen
ROM-Routinen sowie eine
Vielzahl sonstiger Hilfspro-
gramme in einer systemati-
schen Form zusammengestellt
werden. Insgesamt umfaßt die-
ses Buch über 40 Utilities, dar-
unter mehrere völlig neuartige
Programme wie Double-Lores,
Double Hires, Screen-Format
u.a.
Der erste Teil enthält ein Repe-
titorium der wichtigsten Befeh-
le, Adressierungsarten und
sonstigen Besonderheiten des
6502.
Im zweiten Teil werden alle
Adressen des Monitors zusam-
mengestellt, die für Assembler-
Programmierer von Nutzen
sein können. Darüber hinaus
findet der Leser Unterroutinen
für hexadezimale Addition/
Subtraktion/Multiplikation/Divi-
sion, Binär-Hex-ASCII-Um-
wandlung usw.
Der dritte Teil befaßt sich mit
der Speicherverwaltung der
Language Card und der lle-
64K-Karte und enthält Move-
Programme zum Verschieben
von Daten in die und aus der
Language Card sowie der 64K-
Karte.
Der vierte Teil ist dem Ap-
plesoft-ROM gewidmet und li-
stet eine große Anzahl nützli-
cher Interpreter-Adressen. Bei
den Utility-Programmen liegt
das Schwergewicht auf Fließ-
kommamathematik einschließ-
lich Print Using.
Der letzte Teil behandelt den
Text- und Graphikspeicher.
Neben einem professionellen
Maskengeneratorprogramm
werden auch Routinen zur
Double-Lores- und Double-Hi-
res-Grafik vorgestellt.
Arbeiten mit dem
Macintosh
von N. Hesselmann
416 Seiten, 320 Abb. DM 54,-—
Das Buch erklärt den Umgang
mit dem Macintosh von Grund
auf, wobei auch auf elementare
Dinge eingegangen wird, wie
z. B. die Benutzung der Tasta-
tur und der Maus, das Einlegen
von Disketten und den System-
start. Ganz besonderes Augen-
merk wird auf die Erklärung der
speziellen Software-Umge-
bung des Macintosh gelegt,
wobei das Menü- und Fenster-
konzept sowie das Anwählen
durch Piktogramme gekenn-
zeichneter Funktionen klar dar-
gestellt wird.
Der Umgang mit den Program-
men MacPaint und MacWrite
wird erläutert; dies geschieht
teilweise anhand von Beispie-
len, die leicht nachvollzogen
werden können. Ein umfangrei-
ches Kapitel ist dem für den
Macintosh erhältlichen Micro-
soft-BASIC gewidmet.
BASIC Ubungen
für den Apple
von J. P. Lamoitier
1983, 252 S., zahlr. Abb., kart.,
DM 38,—
Das Buch ist konzipiert, allen
Apple-Anwendern Applesoft-
BASIC durch praktische Ubun-
gen an Hand von reellen Pro-
grammen beizubringen. Daten-
verarbeitung, Statistik, kom-
merzielle Programme, Spiele
und vieles mehr. Jede Übung
beinhaltet eine Beschreibung
der Problemstellung, eine Ana-
Iyse der Lösungsmöglichkei-
ten, ein Flußdiagramm und ein
fertiges Programm samt Pro-
belauf.
Aus dem Inhalt:
Ihr erstes BASIC-Programm —
Flußdiagramme — Ubungen mit
Integerzahlen — Elementare
Beispiele aus der Geometrie —
Allgemeine Übungen aus der
Datenverarbeitung — Mathema-
tische Berechnungen — Kauf-
männische Berechnungen —
Spiele - Operations Research
— Statistik
Apple ProDOS
für Aufsteiger
Band 1
von Ulrich Stiehl
1984, 202 S., kart., DM 28,-
ProDOS ist das neue „profes-
sionelle DOS“ (Professional
Disk Operating System) für den
Apple Ile sowie den mit einer
Language Card ausgestatteten
Apple Il Plus. Band 1 befaßt
sich mit den theoretischen
Grundlagen von ProDOS, der
internen und externen Spei-
cherorganisation und enthält
grundlegende Beispielpro-
gramme für Assembler-Pro-
grammierer sowie generelle
Untersuchungen zum BASIC-
SYSTEM. Da ProDOS über er-
heblich vielfältigere und lei-
stungsfähigere, zugleich je-
doch erheblich kompliziertere
Dateistrukturen verfügt, sind
theoretische Kenntnisse von
ProDOS unabdingbar, wenn
man die Features von ProDOS
voll ausschöpfen will.
Aus dem Inhalt:
Ein erster Überblick - ProDOS
und DOS 3.3 — Interne Spei-
cherorganisation — Externe
Speicherorganisation — MLI
(Machine Language Interface)
— ProDOS für Applesoft-Pro-
grammierer
19
von Arne Schäpers
Ursprünglich war dieser Artikel nebst Pro-
gramm als Teil einer weitergehenden Be-
schreibung der Apple-Drives vorgesehen.
Um aber allzugroße Überschneidungen
mit der Artikelserie von Gerhard Berg zu
vermeiden, bringen wir dieses Programm
als „Stand-alone“-Utility mit einem Mini-
mum an Erklärungen.
Die drei „kritischen“ Punkte beim Lesen
von und Schreiben auf Diskette, nämlich
a) Nibble-Kodierung,
b) die zeitlichen Bedingungen beim
Schreiben eines Bytes und
c) Bewegungen des Arms
werden in einer späteren Ausgabe vom
Peeker ausführlich behandelt.
Eine Begründung für das folgende Pro-
gramm sollte hier auch nicht fehlen:
So gut wie alle Disk-Utilities sind im be-
sten Fall für vollständig kompatible 40-
Track-Drives geeignet — Benutzern von
Drives mit mehr als 40 Tracks bleibt nur
die Hoffnung, daß nichts schiefgeht.
Aus diesem Grund wird in einer der näch-
sten Peeker-Hefte auch ein Disk-Editor für
ProDOS (und DOS 3.3) erscheinen, der
sich streng an den Standard hält mit der
Folge, daß alle mit Hilfe von „Patches“
angepaßten Drives einschließlich der
RAM-Disk benutzt werden können.
Das hier vorgestellte Formatierungspro-
gramm hat folgende Features:
- Es arbeitet mit 35 bis 80 Tracks in jedem
Slot (außer 0);
— Die Neuformatierung einzelner Tracks ist
möglich;
— Es kann ermittelt werden,
Tracks ein Drive „verträgt“;
— Es läuft unter DOS 3.3 und unter
ProDOS.
Man beachte jedoch, daß nur eine Forma-
tierung im engeren Sinne vorgenommen
wird, d.h. es werden weder Boot- und
Directory-Blocks (bei Pascal- und Pro-
wieviele
20
FORMATTER
Ein universelles Formatierungsprogramm
DOS) noch Catalog-Spuren (bei DOS 3.3)
angelegt. Das Formatierungsprogramm
kann deshalb um eine Blockwrite- (Pascal,
ProDOS) oder RWTS-Routine erweitert
werden, die die bei dem jeweiligen Be-
triebssystem erforderlichen System-
Blocks oder -Spuren anlegt.
Die Theorie
Zur Einleitung der Theorie zunächst ein-
mal die Speicherstellen (l/O-Adressen)
des Controllers in tabellarischer Form:
$C080-$C087: Phasen des Schrittmotors
zur Armsteuerung
$C088: Drive-Motor aus
$C089: Drive-Motor an
$C08A: Selektierung Drive 1
$C08B: Selektierung Drive 2
$C08C: Strobe des Data Latch
$C08D: Load des Data Latch
$CO8E: Setzt „Read“ von der Diskette
$CO8F: Setzt „Write“ auf die Diskette
Alle diese Speicherstellen sind hier für
Slot O angegeben. Bei einem anderen Slot
kommt noch die Slotnummer x 16 hinzu,
also z.B. für das Anschalten eines Drives
in Slot 6:
LDX #$60 (= Slotnummer x 16)
LDA $C089,X (= Motor an)
Über das Ansprechen von Drive 1 oder
Drive 2 entscheiden nur die Speicherstel-
len $C0O8A und $CO8B. Alle folgenden
Routinen finden mit dem durch diese bei-
den Speicherstellen selektierten Laufwerk
statt.
Mit Ausnahme der Speicherstellen $C08D
bis $CO8F ist das Ansprechen durch einen
beliebigen Prozessor-Befehl, also z.B.
LDA oder LDX, aber auch CMP oder BIT
ausreichend.
Ein Formatierungsprogramm besteht im
allgemeinen aus vier Teilen:
Parameterübergabe
Zunächst müssen die Werte wie Start-
Track, End-Track, Volume-Nummer usw.
festgelegt werden. Diese Aufgabe wird
durch das Applesoft-Programm namens
FORMAT erledigt, das hier aus rein opti-
schen Gründen etwas „professioneller“
ausgefallen ist.
Selektierung und Anschalten des Ziel-
Drives
Bei einem „richtigen“ DOS fällt dieser
Prozeß wesentlich komplizierter aus. So
wird z.B. zuerst geprüft, ob noch ein ande-
rer Drive an ist usw. Unser Formatierungs-
programm beschränkt sich auf das An-
sprechen der Speicherstelle $C089 (+
Slotnummer x 16).sowie die Selektierung
von Drive 1 oder Drive 2. Danach folgt
eine Verzögerung, damit sichergestellt
wird, daß der Motor die Nenndrehzahl er-
reicht. Zweckmäßigerweise wird innerhalb
dieser Zeit der Arm rekalibriert.
Schreiben eines Tracks
Zum „normalen“ Schreiben eines Sektors
(Blocks) bestehen hier mehrere gravieren-
de Unterschiede:
— Es wird „blind“ geschrieben, d.h. es
kann naturgemäß vorher nicht durch Le-
sen eines Address-Field geprüft werden,
ob sich der Arm auf dem richtigen Track
befindet. Der Arm wird einfach pro Track
um eine Position nach innen bewegt.
- Es muß nicht nur ein Data-Field, sondern
auch jeweils vorher ein entsprechendes
Address-Field geschrieben werden.
— Das Data-Field bleibt leer und enthält nur
Nullen ($96).
Verifizierung des
Tracks
Nach dem Schreiben wird der Track noch-
mals gelesen, um etwaige Übertragungs-
fehler oder Diskettenschäden festzu-
stellen.
geschriebenen
Der Aufbau einer Spur und die Einteilung
eines Sektors in verschiedene Felder kann
der Tabelle 1 entnommen werden.
Peeker 7/85
Das Programm
Das Applesoft-Programm FORMAT wurde
geschrieben, um die Parameterübergabe
etwas komfortabler zu gestalten. Das Set-
zen der einzelnen Parameter könnte
ebenso durch diverse Pokes und ein an-
schließendes BRUN von FORMAT.OBJ
stattfinden. Diese Werte werden in der
Page 3 übergeben und sind in Tabelle 2
aufgeführt.
Das Maschinenprogramm FORMAT.OBJ
hat vier Einsprünge:
8192 ($2000) — Drive Select, Motor an,
Rekalibrierung auf Track 00;
8195 ($2003) — Motor an;
8198 ($2006) — Motor aus;
8201 ($2009) — Arm auf Track xx, und
Formatierung von Track xx bis Track yy mit
anschließender Verifizierung. Das fast
schon übliche Knirschgeräusch des Arms
nach beendeter Formatierung entfällt, weil
die Formatierung in aufsteigender, die
Verifizierung dagegen in absteigender
Richtung vorgenommen wird, d.h. bei ei-
nem kompletten Durchgang befindet sich
der Arm danach wieder über Track 00.
TECHNIK 9.4
Eine abschließende Warnung, falls Sie
FORMAT.OBJ modifizieren wollen: Die
Routine WRTRACK (ab $22BB) schreibt
einen ganzen Track synchronisiert, d.h. in
einem auf die Mikrosekunde abgestimm-
ten Zeitverhältnis. Bereits das speicher-
platzmäßige Verschieben kann u.U. zu un-
lesbarem Müll auf der Diskette führen,
wenn z.B. danach ein relativer Sprung
(BNE ..) über eine Seitengrenze hinaus-
geht, denn der 6502 hat leider die unange-
nehme Eigenschaft, sich für derartige
Sprünge eine Mikrosekunde mehr Zeit zu
lassen.
Tabelle 1: Aufbau einer Spur
GAP 1: eine größere Anzahl von Autosyncs ($FF)
Address-Field: Address-Field-Header ($D5 $AA $96)
Volume-Nummer (1 Byte i.allg. $FE)
Track-Nummer (1 Byte)
Sektor-Nummer (1 Byte)
Checksum (2 Bytes)
Address-Field-Trailer ($D5 $AA $EB)
GAP 2: mehrere Autosyncs ($FF)
Data-Field: Data-Field-Header ($D5 $AA $AD)
Information des Datensektors (341 Bytes)
Checksum (2 Bytes)
Data-Field-Trailer ($D5 $AA $EB)
mehrere Autosyncs ($FF) bis zum Anfang des
Address-Fields des nächsten Sektors
Address-Field
GAP 2 (weitere Sektoren)
Data-Field
GAP 3 des Sektors $®F
GAP 1
Das GAP 3 des Sektors $@F, also des letzten Sektors auf dem
Track, reicht dann bis in das GAP 1 hinein, d.h. GAP 1 wird
teilweise überschrieben. Somit ist gewährleistet, daß der
gesamte Track definierte Information enthält.
Tabelle 2: Übergabeparameter
$0300 (768): Slot-Nummer * 16 (z.B. 96 für Slot 6)
$0301 (769): Drive-Nummer (® oder 1)
$0302 (778): Volume-Nummer (z.B. $FE)
$0303 (771): Start-Track (z.B. 9)
50304 (772): End-Track (z.B. 34)
$0305 (773): Half-Track ($ß® = ganze Spur,
$80 = Halbspur)
FORMAT
108 TEXT : HOME : INVERSE : PRINT SPC( 49): NORMAL :
VTAB 1: HTAB 15: PRINT '" FORMATTER "
105 REM
11® IF PEEK (8192) = 4 * 16 + 12 THEN 13®
115 VTAB 6: PRINT "FORMAT.OBJ wird geladen..."
12® PRINT CHR$ (4)"BLOAD FORMAT.OBJ"
125 REM *%*%*% Initialisierung und Parameter-Anzeige x%x**
13® LOMEM: 1®240: REM Damit FORMAT auch unter ProDOS
läuft!
135 SL$ = '"6":DR$ = "2":VL$ = "FE": REM Slot, Drive,
Volume
149 ST$ = "B0":ET$ = "34":HT$ = "N": REM Anfang, Ende,
Half-Track
145 POKE 34,1: HOME
Peeker 7/85
POKE 33,34: POKE 32,4: REM Textfenster
VTAB 4: PRINT "Slot: ";SL$;" Drive: ";DRS;"
Volume: $"VL$
VTAB 6: PRINT "Start-Track: ";ST$;" End-Track:
" r ET$
VTAB 8: PRINT "Software "; CHR$ (34) ;"Half-Track";
CHR$ (34);'" (J/N): ";HT$
POKE 32,9: POKE 33,4®
REM x%*x** Restart x%x%*%*
VTAB 12: HTAB 8: PRINT " <P> andere Parameter "
VTAB 14: HTAB 6: PRINT "<CR> = Start <ESC> =
Ende"
REM *x*** Parameter/Start/Ende *x**x*
VTAB 14: HTAB 20: GET X$
IF X$ = CHR$ (27) THEN HOME : POKE 34,9: END
IF X$ = CHR$ (13) THEN 460: REM Start
IF X$ < > "p" AND X$ < > "p" THEN 195
REM x%*%*%* Parameter ändern **%*x*
POKE 34,11: HOME : POKE 34,1
RESTORE :N3$ = "":N4$ = """
A$ = SL$: GOSUB 305:SL$ = A$
A$ DR$: GOSUB 395:DR$ = A$
N3$ = "A'":NA$ = "F": REM Hexzahlen erlaubt
A$ = VL$: GOSUB 330:VL$ = A$
N3$ = "":N4$ = "": REM Nur Dezimalzahlen
A$ = ST$: GOSUB 339:ST$ = A$
A$ = ET$: GOSUB 339:ET$ = A$
IF VAL (ST$) < = VAL (ET$) THEN 275
VTAB 12: HTAB 5: PRINT CHR$ (7);"Start-Track größer
End-Track ??": GOTO 225
IF VAL (ET$) -— VAL (ST$) < 48 THEN HT$ = "N": GOTO
285
A$ = HT$:N3$ = "Y":NA$ = N3$: GOSUB 305:HT$ = A$
VTAB 8: HTAB 34: PRINT HT$
POKE 34,11: HOME : POKE 34,1
GOTO 18%
REM *%*%* Subroutinen für Parameteränderungen %*%*%
REM Input ein Zeichen
GOSUB 389: REM Setzt Cursor
GET X$: IF X$ = CHR$ (13) THEN X$ = A$: RETURN
GOSUB AB: IF X$ = "" THEN 315: REM Check
A$ = X$: PRINT A$;: RETURN
REM Input zwei Zeichen
GOSUB 389: REM Setzt Cursor etc.
GET X$: IF X$ = CHR$ (13) THEN X$ = A$: RETURN
GOSUB 409: IF X$ = "" THEN 349: REM Check
Z$ = X$: PRINT X$;" "; CHR$ (8);
GET X$: IF X$ = CHR$ (13) THEN A$ = "0" + Z$: GOTO
375
IF X$ = CHR$ (8) THEN HTAB H: P A$;: HTAB H:
GOTO 349: REM Restart
GOSUB 409: IF X$ = '"" THEN 355
A$ = 2$ + X$
HTAB H: PRINT A$: RETURN
REM Setzt Cursor und liest Min/Max
READ V,H: VTAB V: HTAB H
READ N1$,N2$: REM Min/Max
RETURN
REM UC-Übersetzung und Check
X$ = CHR$ ( ASC (X$) - 32 * ( ASC (X$) > 96))
IF (X$ < N1$ OR X$ > N2$) AND (X$ < N3$ OR X$ > N4$)
THEN PRINT CHR$ (7);:X$ = ""
RETURN
REM VTABs, HTABs und Min/Max für Parameter
21
22
659
655
649
645
659
655
669
665
679
675
680
685
699
695
700
705
719
715
72®
725
73®
735
749
DATA 4,11,"1",'"7": REM Slot
DATA 4,22,'"1","2": REM Drive
DATA 4,35,'"0","9": REM Volume
DATA 6,18,"0","9'": REM Start-Track
DATA 6,35,"9",'"9": REM End-Track
DATA 8,34,'"N","N": REM Half-Track, "Y" ist N3$/N4$
REM x*%*%* Start FORMAT xx%*%*
POKE 34,11: HOME : POKE 34,1: VTAB 12: HTAB 8
PRINT "<ESC> = Funktion abbrechen"
POKE 768,16 * VAL (SL$): POKE 769, VAL (DR$) -
VL = 6: FOR X = 1 TO 2:X$ = MID$ (VL$,X,1)
VL = 16 * VL + ASC (X$) - 48 - 7 x» ( ASC (X$) > 64):
NEXT
POKE 77®,VL: POKE 771, VAL (ST$): POKE 772, VAL (ET$)
POKE 773, IF HT$ = "J" THEN POKE 773,127
REM 8192 Drive on, Recal., Test Track ®®
REM 8195 Drive on
REM 8198 Drive off
REM 8201 FORMAT (Start. .End-Track)
VTAB 16: HTAB 1
PRINT '"9123456789ABCDEF®123456789ABCDEFß1234567" ;
PRINT "
VTAB 18: HTAB 1: CALL 8192
ERR = PEEK (767)
IF ERR < > ® AND ST$ = "0" THEN 639: REM Disk neu
=> FORMAT
IF ERR = ® AND ST$ < > "0@" THEN 639: REM Disk
teilweise formatiert
CALL 8198: REM Drive aus!
VTAB 21: PRINT CHR$ (7)
IF ERR = ® THEN 585: REM Disk nicht neu
PRINT "Track ®® unformatiert -"
PRINT
PRINT "Positionierung auf Track "ST$" unmöglich."
GOTO 189
VL = PEEK (768 + 9):VL$ = "": FrRRX=1T0 2
VL$ = VL$ + CHR$ ((VL / 16) +48 +7 (VL / 16 >
19))
VL = (VL - INT (VL / 16) * 16) * 16: NEXT
VTAB 4: HTAB 35: PRINT VL$: VTAB 22
PRINT "Diskette enthält Daten!"
PRINT
PRINT "Neu formatieren (J/N): ";
GET X$: IF X$ < > "J" AND X$ < > "j" THEN PRINT
"N"; : GOTO 189
PRINT X$;: CALL 8195: REM Drive an
POKE 34,20: HOME : POKE 34,1
VTAB 22: PRINT "Disk wird formatiert..."
VTAB 18: HTAB 1: CALL 8201
VTAB 22: PRINT SPC( 3®8);: HTAB 1
IF PEEK (767) = ® THEN PRINT "Formatierung
fehlerfrei beendet.": GOTO 189
PRINT CHR$ (7);: ON PEEK (767) GOTO
669,680,690,710,739
PRINT "Kein Laufwerk angeschlossen oder"
PRINT
PRINT "Diskette schreibgeschützt.";
GOTO 189
PRINT "Laufwerksgeschwindigkeit zu hoch."
GOTO 189
PRINT "Allgemeiner Fehler: Schlechtes Medium, '
PRINT
PRINT "Klappe offen, etc.";
GOTO 189
PRINT "Armpositionierungsfehler -"
PRINT
PRINT "wahrscheinlich zu hohe Track-Numnmer.";
GOTO 18®
PRINT "- Abbruch."
GOTO 18
REM Arne Schäpers 4/85
u | Be a u =
Diverse Experimente mit Original-Disk-II-
Drives und Duodisk-Drives (A. Schäpers
benutzt andere Laufwerke) zeigten, daß
bei
mit FORMAT initialisierten DOS-3.3-
und ProDOS-Disketten beim RWTS-Sek-
tor-Write bzw. MLI-Block-Write der Zugriff
doppelt solange dauert wie beim Read.
Aus Zeitgründen war es mir bislang nicht
möglich, die optimalen Werte für die Syn-
chronisationsbytes zu finden. us
ZUSATZ-KARTEN:
V-24-Schnittstelle ............ 199,- Z-80-Karte ........2222222.. 139,-
80-Zeichen-Karte m.Softswitch 236,- 16K-Language-Karte ......... 138,-
Centronics-Karte von Epson für Graphik... . 210,- für Text... .145,-
Centronics-Schnittstelle für 2 Drucker gleichzeitig ................... 129,-
rommer incl. Software... .... 22:22 none eeeenenneenereee nenn 198,-
uper-Eprommer 239
belegt keinen En incl. Software für 2708-27128 ............ Pi
0 0 U ESORHEARNRFENEERR auf Anfrage
Floppy-Controller
FDC 4 für alle Laufwerke °... .. .. 170,- Bausatz wielinks ............ 159,-
Leerplatine wie oben incl. Pomu.Eprom .......:.2.22cneenneeeennnn 98,-
DEREN BRAR 2:24:22 auf Anfrage
Auto ee -Controller crnicontroien
1x35bis2x8 Disk, keine Patch-Disk notwendig, Patch DOS 3.3, Diversi-
DOS 2-C, 4-C (DD MOVER), Pascal 1.1, Pascal 1.2, CPM 2.2, Flak
A ı 9 DE 6: Su De r Sie können die Laufwerke kleid mischen 98, =
ey: für 15%" Slimline Laufwerk „2.2... n m nn 39,-
Gehäuse für 2 5V4’ Slimline Laufwerke mit Platz für ein Netzteil ......... 159,-
Gehäuse für 2 3%" Slimline Laufwerke mit Platz für ein Netzteil .......... 79,-
IBM®-Gehäuse ......... men nennen nn 229,-
Floppy-Kabel 34pol. für 2 Laufwerke mit Shugart-Bus ................. 35,-
Preh Commander Keyboards
Wir bieten Ihnen die Preh-Qualität auch für Apple. AK 88 Spez. mit Gehäuse, An-
schlußkabel, Zehner-Tastenfeld, dt. Zeichensatz, endencsien für
Gtrl-Codes und Rechenfunktionen ...... 2: 22mm nennen 339, v
Preh Commander Keyboard AK 87, frei programmierbar
bis zu 10 Ebenen, pro Taste bis zu250 Zeichen .............. nur 559, -
TEAC 3%" Laufwerk FD 35 Foa5 _
Speicherkapazität 1 MB, (formatiert 640 KB) jetzt fürnur ........
TEACFD55A1x40 Track ..... 445,- TEACFD55B2x40 Track ...... 515,-
TEACFD55E1x80 Track ..... 490,- TEACFD5S5SF2x80 Track ..... 560,-
Philipps Slimline Floppy X3134 A, 2x80 Track solange Vorrat ......... nur 569,-
SONY 3%" Laufwerk... ...:: 2. nennen nur 799,-
Apple®-kompatibles Laufwerk incl. Gehäuse + Kabel ................ 599,-
320 KB Laufwerk für Ic ................. 948,-
148 KB Laufwerk für lIc.................. 698,-
EPSON DRUCKER
EPSON FX80 ............... 1670,- EPSON FX100 .............. 2159,-
EPSONRX80 .............. 1079,- EPSONRX8O0FT ............ 1295,-
Patch-Diskette für SONY 3%" Laufwerke - ermöglicht die Anpassung an Il/Ile und
kompatible Computer .......... 80,- Manual vorab 15,-DM (wird beim Kauf
der Patch-Diskette angerechnet). dto. für 5Y4" Laufwerke ........ 69,-
Disketten Döb&Böd SS/DD 10St. 62,- 10 Disketten f. 31." Laufw........ 150,-
Akustikkoppler AK 300 mit FTZ-Nr. incl. Netzteil ............222222.. 549,-
Interface zum Anschluß von Laufwerken mit Shugart-Bus ............. 248,-
Die NIONOPPY mit Zukunft:
Speicherkapazität: 2 x 1 MByte for-
matiert: 2x 640 kByte. Anschlußfertig Alt,
mit PROM-residenter Patchsoftware
für CP/M 2.2, Apple DOS 3.3, Diversi-
DOS 2-C, 4-C (DD MOVER), Apple ' i
Pascal 1.1, Pascal 1.2, Pro-DOS . er
1.0.1, 1.1, 1.1.1 zum E -: n
PIOISVON sun ananes 1640,-
Low Power Version ........ 1740,-
10 MB Winchester
mit Software für DOS 3.3, CP/M 2.20, Pascal, Pro-DOS
incl. Controler und Gehäuse . 22 re 4490 -
Sonderangebot
Disketten Döb&Böd 40 Track, SS/DD 10er Pack . .49,-
Gesamt-Preisliste anfordern! Preise inclusive gesetzlicher Mehrwertsteuer.
8 Js] NICH-1-Yaıgelalle-
JäuKeyKyAY7 73:77]
Tel. 02373/63159
Holtewiese 2
KYLIE TE L-TM
Peeker 7/85
G8/2 199994
Es
FORMAT. OBJ
oo oı9u1AumD Hr
Dr Hr
SOO IV PN DH a
NNDDVODVDDDDUDD
SOVONIVD AU DH
N WW
N DDr
BRARARBHKA Oo u a u
DOBUDESOAANIDUSB
*
* vom Steuerprogramm gesetzte Werte
.
SLOT16 EQU
DRIVENO EQU
VOLNO EQU
STRACK EQU
ETRACK EQU
HFLAG EQU
”
ERRNO EQU
*
$399
$301
$392
$303
5304
$395
$2FF
‚ Slot-Nr. * 16
; Drive: ® oder 1
; Volume-Nummer
Start-Track
End-Track
"Half-Track'" Flag: $ß® oder $8®
; Fehlernummer für BASIC
* vom Programm benutzte Speicherstellen
*
ADDRBASE EQU
SECFOUND EQU
TRKFOUND EQU
VOLFOUND EQU
”
TRNOW EQU
TRWANT EQU
”
$396
$397
$308
$309
$30A
$30B
‚ Basis der von RDADDR
gesetzten Speicherstellen:
; Volume/Track/Sektor
‚ und CHECKSUM in absteig. Folge
’
"Track jetzt"
"Track gewünscht"
* Speicherstellen des Controllers
*
ARMBASE EQU
DRVOFF EQU
DRVON EQU
DRVSEL EQU
STROBE EQU
DATA EQU
SREAD EQU
SWRITE EQU
*
* benutzte Speicherstellen
*
ZVOLNO EQU
SECTOR EQU
ZTRACK EQU
*
ORG
*
JMP
JMP
JMP
JMP
LDA
STA
LDA
STA
JSR
JSR
JSR
JSR
*
NOTNEW
$co8p
$c988
$c989
$CO8A
$cdsc
$CQd8D
$CO8E
$CO8F
$45
$46
$47
$2009
START
DRIVEON
DRIVEOFF
FORMAT
#+$EF
DELAY1
+$D8
DELAY2
SELECT
RECAL
COUNTUP
RDADDR
VOLFOUND
VOLNO
+9
+9
TRKFOUND
STl
ERRNO
Phasen-Adressierung
; Motor off
; Motor on
$8A: Drive 1 / $8B: Drive 2
;‚ DATA IN bei READ
; DATA OUT bei WRITE
setzt "READ"
setzt "WRITE"
in der Zeropage
; Timing in WRITE
‚ Einsprungvektoren für BASIC
festgelegte Werte
zum Hochzählen für die
‚ Startzeit des Motors
‚ Drive an
: Arm zurück auf Track ®® und
"delay'", bis Motor auf Touren
lesen eines Address-Fields
ging gut — keine neue Disk!
für BASIC: neue Disk
; Drive läuft
; auf Track 99?
;‚ darf eigentlich nicht passieren
für BASIC: bereits formatiert
; Drive läuft
203D:
2BSF:
2042:
2044:
2047:
2DAA:
204AD:
2D4AF:
2052:
2054:
2055:
2058:
205B:
205E:
2OSF:
2069:
2063:
2064:
2067:
2068:
206B:
2D6E:
2D6EF:
2072:
2073:
2075:
2078:
2DTA:
207D:
2089:
2082:
2085:
2086:
2089:
2D8A:
208D:
208E:
2099:
2093:
2095:
2098:
2099:
209B:
209E:
20Al:
2DAA:
2DAG:
AD
48
Ag
8D
Ag
8D
Ag
8D
68
8D
69
AD
18
69
8D
Dp
AD
38
EI
8D
0
89
8E
Ol
8A
v1)
88
DA
01
DB
09
DA
91
DB
DA
05
01
a
21
20
21
20
03
co
co
03
co
03
co
03
93
03
20
03
03
03
03
03
03
03
03
DRIVEON LDA
STA
LDA
STA
JSR
.
COUNTUP BIT
BPL
JSR
BEQ
MOTORON RTS
.
SELECT LDX
LDA
LDA
TXA
CLC
ADC
TAX
LDA
RTS
=
DRIVEOFF LDX
LDA
RTS
RECAL LDA
PHA
LDA
STA
LDA
STA
JSR
LDA
STA
PLA
STA
RTS
%*
STEPIN LDA
CLC
ADC
STA
BNE
-
*
STEPOUT LDA
SEC
SBC
STA
»
MYSEEK LDA
CMP
BEQ
*
SEEKABS LDA
STA
SEC
#+$EF
DELAYl
#+$D8
DELAY2
SELECT
DELAY2
MOTORON
ARMDELAY
COUNTUP
SLOT16
DRVON,X
SREAD,X
DRIVENO
DRVSEL,X
SLOT16
DRVOFF,X
TRWANT
+00
TRWANT
+$59
TRNOW
MYSEEK
+00
TRNOW
TRWANT
TRNOW
#1
TRWANT
MYSEEK
TRNOW
#1
TRWANT
TRNOW
HFLAG
MS1
TRNOW1
TRWANT
TRNOW
HFLAG
MS2
TRWANT1
TRNOW1
ARMSET
TRNOW1
TRNOW2
; Motor-on-DELAY
;‚ Drive on
; bereits hochgezählt?
’
’
’
win u
zählt DELAY hoch
"always!
‚ Motor on
"READ MODE"
Ö oder 1
Drive auswählen
der gewünschte Track wird
gespeichert,
"Track jetzt" auf $5® gesetzt
; und "Track gewünscht" auf
.....
Folge: Der Arm wird auf
Track ®® zurückgezogen
Restore
l Track nach innen
"always!
l Track nach außen
bei Standard-Drives
müssen pro Track zwei
Armbewegungen ausgeführt
werden, bei 8®-Track-Drives
nur eine
hier sollte der Arm
hinterher sein
Ziel-Track
bereits auf dem Track
174
G8/2 199994
20C5:
2008:
20CA:
2ÖCC:
2ÖCF:
20D1:
20D4:
20D5:
20D8:
20DB:
20DC:
20DF:
2DE2:
20E5:
20ET7:
20DEA:
2DEC:
20ED:
20F®:
20Fl:
20FA:
20FS5:
2OFT:
20F9:
20FA:
2DFC:
ZOÖFF:
2101:
2194:
2105:
2107:
2109:
210F:
2112:
2119;
2118:
211A:
2l1D:
2129:
2123;
2125:
2127:
2129:
212C:
212F:
2132:
2134:
2187:
2139:
2l3B:
213E:
2141:
2143:
2146:
2149:
ED
Fo
BP
EE
CE
38
20
20
18
20
29
Fo
AD
29
2A
OD
BD
6%
A9
A2
CA
EE
Do
38
E9
D®
60
DA
05
OB
dB
F5
dc
F5
D7
DB
03
nn)
80
30
1l
FD
OD
03
DE
Bl
EE
21
21
20
20
21
20
20
21
93
co
A
21
03
03
20
Bi.
21
22
21
03
03
20
2
21
21
03
93
138
139
149
141
142
143
144
145
146
147
148
149
159
151
152
153
154
155
156
157
158
159
16®
161
162
163
164
165
166
167
168
169
178
171
172
173
174
175
176
177
178
179
189
181
182
183
184
185
186
187
188
189
19
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
MOVEIN
MOVEOUT
*
PHASEON
%*
SETARM
SETARM2
ARMSET
”
ARMDELAY
DLY1
DLY2
DLYS3
*
TRWANT1
TRNOW1
TRNOW2
*
DELAY1
DELAYZ
*
FORMAT
WRLOOP
*
VERIFY
SBC
BEQ
BCS
INC
BCC
DEC
SEC
JSR
JSR
CLC
LDA
JSR
JSR
BEQ
LDA
AND
ROL
ORA
TAX
LDA
RTS
LDA
LDX
DEX
BNE
INC
BNE
INC
SEC
SBC
BNE
RTS
DS
DS
DS
DS
EQU
LDA
STA
JSR
LDA
JSR
JSR
JSR
LDA
BCS
LDA
JSR
LDA
CMP
BEQ
JSR
BEQ
LDA
JSR
JSR
BCS
JSR
LDA
CMP
TRWANTI
DLY1
MOVEOUT
TRNOW1
PHASEON
TRNOW1
SETARM
ARMDELAY
TRNOW2
SETARMZ
ARMDELAY
SEEKABS
TRNOW1
+03
SLOT16
ARMBASE,X
+$30
#$11
DLY2
DELAY1
DLY3
DELAY2
+01
DLY1
Hr
x
STRACK
TRWANT
MYSEEK
#$17
PRTRACK
GETESC
WRTRACK
#1
VFEXIT
++
PRTRACK
TRNOW
ETRACK
VERIFY
STEPIN
WRLOOP
+$16
PRTRACK
VFTRACK
VFERR
GETESC
TRNON
STRACK
..
letztes DELAY zum "auspendeln"
"always"
Phase zum Ziel-Track
hin anschalten
danach die alte
Phase aus
"always!
Einsprung: neue Phase on
Einsprung: alte Phase off
Carry bestimmt, ob "on/off"
adressiert Stepper-Motor
fester Wert
für Motor on: Hochzähler
; Scratches für SEEKABS
Motor-on-DELAY
setzt Arm auf Start-Track
inverses "W"
Test auf Abbruch
"WRITE PROTECTED"?
mit ERR#l
Anzeige: WRITE beendet
letzter Track fertig?
nächster Track
"always"
inverses '"V"
Test auf Abbruch
letzter Track?
*
VDONE
VFEXIT
*
PRTRACK
LIMIT
*
GETESC
NOTESC
*
VFTRACK
VDONE
STEPOUT
VERIFY
#3
SECTORS+15
VFEXIT
SECTORS+ßB ;
VFEXIT
#2
VFEXIT
#9
ERRNO
DRIVEOFF
($28),Y
$c009
NOTESC
$co19
#+$9B
NOTESC
#5
ERRNO
DRIVEOFF
*
#9
+#$0F
SECSLEFT
SECTORS,X
VFT1
#33
VFTRIES
RDADDR
VFT4
VFTRIES
VFT2
TRKFOUND
TRNOW
VFT5
=4
VFEXIT
SECFOUND
SECTORS,X
VFT3
VFSECTOR
VFT3
ok.
"always"
; Annahme: allgemeiner Fehler
‚ Sektor $F ok?
nein
Sektor $® ok?
‚ Sektor $F ok,
‚ Sektor $® nicht: ERR#2
; RTS von da zu BASIC
; Character
innerhalb der Zeile
so lange, bis im Bereich 99-$27
"Print"
; Keyboard
; Keyboardstrobe löschen
ansonsten wird die Return-
adresse heruntergeholt
ERR#5: Abbruch
; bei <ESC>: zu BASIC
"noch" 16 Sektoren übrig
‚ das Array "gefundene Sektoren"
; wird gelöscht
Zähler: jeder Sektor darf
‚ maximal 2mal gelesen werden
aus
richtiger Track?
‚ Armposition falsch:
zu hohe Tracknummer?
; ERR#4: Positionsfehler
gesetzt von RDADDR
schon gehabt
‚ Daten verifizieren
gg/1 Jeyoad
GG
21CD:
21D®:
21D2:
21D5:
21D8:
21DA:
21DC:
21DF:
21E®:
Z1F3:
2lF5:
21F8:
2lFB:
lFC:
21FE:
2201:
2203:
2206:
2208:
2ARDA:
2R2DC:
22OD:
2219:
2212:
2214:
2216:
2218:
221B:
221D:
221F:
Berl:
2223:
2226:
2229:
ZZZB:
Z22C:
RZZF:
ARS2:
2234:
2aR3T:
AZSA:
ARSD:
22S3E:
2249:
2241:
2243:
2246:
2248:
ZZAA:
ZZAC:
ARAD:
2259:
2252:
2254:
2256:
22ST:
2258:
AE
Ad
sc
AE
c8
Do
EE
Fo
BD
19
c9
D®
EA
BD
19
c9
D®
AB
BD
10
c9g
D®
A9
8D
BD
10
2A
8D
BD
19
2D
99
4D
88
19
D9
19
cg
DO
EA
BD
19
D9
18
69
38
07
80
E3
E2
D®
AA
6B
FC
5A
11)
95
5A
55
Sc
FB
D5
EF
5C
8C
FB
5C
D6
5B
E3
15
FB
DE
dc
8C
FB
AA
02
D3
21
>
21
22
03
22
c9
co
cp
22
cp
22
cp
22
#3
co
276
277
278
279
280
281
282
283
284
285
286
287
288
289
299
291
292
293
294
295
296
297
298
299
309
301
302
303
304
305
306
307
308
309
319
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
332
333
334
335
336
337
338
339
340
341
342
343
344
-
VFTRIES
SECSLEFT
SECTORS
5
RDADDR
-
ADTRY1
”
ADLD1
ADTRY2
ADLD2
ADLD3
ADDT®
ADDT1
ADDT2
ADTL2
ADERR
LDX
LDA
STA
DEC
BPL
LDA
JSR
CLC
RTS
DS
DS
DS
EQU
LDY
ST!
LDX
INY
SECFOUND
+$89
SECTORS,X
SECSLEFT
VFT3
; noch Sektoren übrig?
#1.
PRTRACK
J
16
*
#$FC
ADTRIES
SLOT16 ; Slot-Numnmer
BNE _ADLD1- —————
INC
BEQ
LDA
BPL
CMP
BNE
NOP
LDA
BPL
CMP
BNE
LDY
LDA
BPL
CMP
BNE
LDA
STA
LDA
BPL
ROL
STA
LDA
BPL
AND
STA
EOR
DEY
BPL
TAY
BNE
BPL
CMP
BNE
NOP
LDA
BPL
CMP
BNE
CLC
RTS
SEC
ADTRIES
ADERR
STROBE,X
ADLD1
+#$D5 ; $D5
ADTRY1
STROBE,X
ADLD2
#+$AA » $AA
ADTRY2
+03
STROBE,X
ADLD3
+$96 ; $96
ADTRY2
#500
ADCHECK ; CHECKSUM
STROBE,X
ADDTI1
ADTEMP ‚ erste Hälfte des Bytes
STROBE,X ; zweite Hälfte
ADDT2
ADTEMP
ADDRBASE,Y ; Vol-Nr./Track/Sector
ADCHECK
ADDT®
zusammen mit CHECKSUM = 9?
ADERR
ADTL1
+$DE ; $DE
ADERR
STROBE,X
ADTL2
#+$AA ; $AA
ADERR
-
ADTRIES
ADCHECK
ADTEMP
*
VFSECTOR
RDTRY1
RDLD1
RDTRY2
*
RDCHECK
WRTRACK
RTS
DS
DS
DS
EQU
LDX
LDY
DEY
BEQ
LDA
BPL
CMP
BNE
NOP
LDA
BPL
CMP
BNE
LDY
LDA
BPL
CMP
BNE
LDA
BPL
CMP
BNE
DEY
BNE
LDA
BPL
CMP
BNE
INY
BNE
LDA
BPL
CMP
BNE
LDA
BPL
CMP
BNE
NOP
LDA
BPL
CMP
BNE
CLC
*
SLOTI16
+$29
RDERR
STROBE,X
RDLD1
+$D5
RDTRY1
STROBE,X
RDLD2
#$AA
RDTRY2
+$56
’
’
Slot-Nummer
"Retries"
$AA
STROBE,X —
RDLD3
#$AD
RDTRY2
STROBE,X
RDDT1
+$96
RDERR
RDDT1
STROBE,X
RDDT2
+$96
RDERR
RDDT2
STROBE,X
RDCHECK
+$96
RDERR
STROBE,X
RDTL1
+$DE
RDERR
STROBE,X
RDTL2
#$AA
RDERR
”
SLOT16
DATA,X
SREAD,X
NOTWPROT
WREND
’
’
’
’
$AD
alle Sektoren sind leer, d.h.
enthalten nur $96
zweiter Teil: "normale"
; die CHECKSUM ist
ebenfalls $96
Test auf "WRITE PROTECTED"
"WRITE PROTECTED" !
"always"
95
G8/2 199994
*
NEXTSEC
*
WRSECTOR
-
ADDRLD
VOLNO
ZVOLNO
#$ FF
SWRITE,X
STROBE,X
+09
SECTOR
TRNOW
ZTRACK
#+$FF
+$89
WRSECTOR
SECTOR
#$19
#14
NEXTSEC
SREAD, X
STROBE,X
509
WRBYTE3
500
3309
$00
WRBYTEl
ADDRLD
GAP13
$309
+$D5
WRBYTE3
#+$AA
WRBYTELl
+$96
WRBYTEL
ZVOLNO
WRDB
ZTRACK
WRDB
SECTOR
WRDB
VOLNO
ZTRACK
SECTOR
#+$AA
DATA,X
STROBE,X
#+$AA
WRBYTEI
+$DE
WRBYTEL
+$AA
WRBYTELl
+$EB
WRBYTELl
#+$ FF
für Timing in WRITE
ab jetzt: Zeit läuft!
erstes Sync-Byte
Timing...
Syncs in GAP 1
letzter Sektor fertig?
16 Syncs zwischen den Sektoren
zurück auf "READ MODE"
Aufruf mit Acc = $FF
GAP 1 und GAP 3: Y-Reg.
; bestimmt die Anzahl der
; Syncs
;‚ 4 usec
; $D5
; $AA
; $96
Volume-Nummer
; Track-Nummer
Sektor-Nummer
und CHECKSUM, erster Teil
CHECKSUM, zweiter Teil
; $DE
> $AA .
$EB
erstes Sync zwischen
2391:
2359:
235B:
235C:
235E:
2361:
2362:
2364:
2366:
2369:
236B:
236E:
2379:
2373:
23193
2378:
237A:
237D:
2ST7F:
2381:
2384:
2385:
2388:
2389:
238B:
238D:
2399:
2393:
2394:
2396:
2398:
23:
239D:
23AP:
23A2:
2345:
2347;
23AA:
23AC:
23AF:
23Bl:
23B4:
23B6:
23B8:
23BB:
23BC:
23BD:
2SBE:
2509:
2503:
23C6:
25C7:
23C9:
2SCB:
25CD:
2SCE:
2SCF:
23DP:
23D3:
23D6:
18
48
68
9D
DD
69
07
09
00
CD
02
F6
99
D®
AA
CD
AD
CD
96
CD
55
2®
9
D®
F6
nn)
D®
02
F5
09
96
D®
DE
CD
AA
CD
EB
CD
46
ul)
01)
FF
Dp
AA
sc
AA
46
46
8D
Sc
983 Bytes
23
03
23
23
23
253
03
23
03
25
03
25
23
23
25
03
25
cp
c®
co
co
486
487
488
489
490
491
492
493
494
495
496
497
498
499
599
501
592
593
594
505
506
597
508
509
51®
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
539
531
532
533
534
535
536
537
538
539
549
541
542
543
544
545
546
547
548
549
559
551
552
553
554
GAP2
*
DATALD
WRDAT1
.
WRDATZ
-
DATATL
WRDB
.
WRBYTEl
WRBYTE2
WRBYTE3
LDY
BIT
NOP
BIT
JSR
DEY
BEQ
BNE
BIT
LDA
JSR
LDA
JSR
LDA
JSR
LDA
JSR
LDY
BIT
BIT
NOP
JSR
DEY
BNE
BIT
BIT
JSR
INY
BEQ
BNE
BIT
LDA
JSR
LDA
JSR
LDA
JSR
LDA
JSR
INC
BIT
BIT
LDA
JMP
NOP
TAY
LSR
ORA
STA
CMP
TYA
ORA
INC
DEC
CLC
PHA
PLA
STA
CMP
RTS
NTSDXU
D
#7
309
509
WRBYTEl
DATALD
GAP2
$399
#+$D5
WRBYTE3
#$AA
WRBYTEL
#$AD
WRBYTELl
+$96
WRBYTELl
+$55
$09
$399
WRBYTES
WRDAT1
309
$309
WRBYTES3
DATATL
WRDAT2
$309
+$96
WRBYTE3
#+$DE
WRBYTELl
#$AA
WRBYTELl
+$EB
WRBYTELl
SECTOR
$309
$09
#$ FF
WRBYTES
#+$AA
DATA,X
STROBE,X
#$AA
SECTOR
SECTOR
DATA,X
STROBE,X
.
’
Address—- und Data-rFlelc
; + 7 weitere Syncs
..
..
“.
“.
4 usec
$D5
$AA
$AD
ab hier weicht das Verfahren
stark von DOS 3.3 ab!
die ersten $55 Bytes
("zusätzliche")
die nächsten $1ß® Bytes
("normale")
"CHECKSUM'"
$DE
$AA
$EB
insgesamt 9 usec
JMP(!) folgt
; erstes Sync nach Data-Field,
für Zeit in Haupt-Loop
für die zweite Hälfte
zweite Hälfte
5 usec
5 usec
usec
usec
usec
usec
usec
DB OB Oo
ZN MAGAZIN FÜR APPLE-COMPUTER
Ja, ich möchte peeker abonnieren.
Liefern Sie mir peeker ab Ausgabe .................- (1985 erscheinen 11 Ausgaben —
1 Doppelnummer) zum Jahresbezugspreis von DM 72,- (Inland) incl. MwSt. Die
Lieferung erfolgt frei Haus. Porto, Verpackung und Zustellgebühren übernimmt
der Verlag. Der Jahresbezugspreis für das Ausland beträgt DM 72,- incl. MwSt.,
zzgl. DM 16,80 Versandspesen.
®
E
F
Ich wünsche jährliche Berechnung durch:
[_] Verlagsrechnung [_] Abbuchung von meinem Bank-
bzw. Postscheckkonto
Bank / PschA
Bankleitzahl Kto.-Nr.
Datum Unterschrift
TIPP HPENER 94
MAGAZIN FÜR APPLE-COMPUTER
a Abo
Bitte senden Sie mir gegen Rechnung folgende Bücher:
-Shop
Datum Unterschrift
Für in ıterlag. A EEI
. Folgende D Dis etten a |
a ag best: |
a Buch
MAGAZIN FÜR APPLE-COMPUTER
© Bitte senden Sie mir
| e gegen Rechnung folgende Apple-Programme:
oO U] Peeker-Sammeldiskette, einzeln U] Apple DOS 3.3, Begleitdiskette, DM 28,—
Disk# ____—_, Disk# DJ Apple ProDOS, Band 1, Begleitdiskette,
Se Disk# ____—_, Disk# DM 28,—
a Preis je Disk DM 28,- (einzeln) DI en Band 2, Begleitdiskette,
5 U] Peeker Sammeldiskette, OD) Apple Assembler, Begleitdiskette, DM 28,-
eo im Fortsetzungsbezug OD) ProDOS-Editor 1.0, Programm, DM 98,-
ab Disk # ___— U) MMU 2.0, Programm, DM 98,-
(Mindestbezug 6 Disketten) OD INPUT 2.0, Programm, DM 98,-
Preis je Disk DM 20,- OD) Softbreaker 1.0, Programm, DM 48,-
OD) DB-Meister, Programm, DM 290,-
| OÖ OD] Superplot, Programm, DM 48,-
42) [I Superquick, Programm, DM 48,—
E Datum Unterschrift
Firma
. Abteilung
Vertrauensgarantie:
Ich habe davon Kenntnis genommen, daß ich die Bestellung
schriftlich durch Mitteilung an den Dr. Alfred Hüthig Verlag,
Postfach 102869, 6900 Heidelberg 1 innerhalb von
7 Tagen widerrufen kann. Zur Fristwahrung genügt die
| rechtzeitige Absendung des Widerrufs (Datum des
Poststempels).
Datum
Unterschrift
Verlagshinweis:
Das Abonnement verlängert sich zu den jeweils gültigen
Bedingungen um ein Jahr, wenn es nicht 2 Monate vor
Jahresende schriftlich gekündigt wird.
Karte bitte vollständig ausfüllen
Karte bitte vollständig ausfüllen
Vorname, Name
Firma
Straße
Telefon mit Vorwahl
POSTKARTE
peeker
Leserservice
Postfach 10 28 69
6900 Heidelberg 1
POSTKARTE
peeker
Versandbuchhandlung
Postfach 10 28 69
6900 Heidelberg 1
POSTKARTE
peeker
Softwareabteilung
Postfach 10 28 69
6900 Heidelberg 1
INPUT 2.0
Ein Bildschirm-
Maskengenerator
für DOS 3.3 und ProDOS
vonU. Stiehl
1984, Diskette und Manual, DM 98,-
ISBN 3-7785-1021-5
„input 2.0° liegt wahlweise in der Bank 1
oder Bank 2 der Language Card und wird
durch einen kurzen Driver in den unteren
48K aufgerufen.
Für jedes Feld der Bildschirmmaske lassen
sich u.a. definieren: Feldiänge (bis zu 255
Zeichen) — Vtab — Htab — Datentyp (insge-
samt 8 Typen) - Scrollflag (starre oder dyna-
mische Maske) — Ctriflag — Füllflag — Lösch-
flag — Bildschirmflag (40- oder 80-Z-Darstel-
lung). Innerhalb eines Eingabefeldes besteht
jeder denkbare Redigierkomfort (Insert, De-
lete, Rubout, Restore usw.).
Gerätevoraussetzung: Apple Ile oder Ilc; fer-
ner Apple Il+ im 40-Zeichenmodus
MMU 2.0
Memory Managements
Utilities
für die Apple lie 64K-Karte
DOS 3.3 (und ProDOS)
von U. Stiehl
1984, Diskette und Manual, DM 98, -
ISBN 3-7787-1023-1
Insgesamt enthält die neue „MMU 2.0"-
Diskette über 25 Programme, die neue
Einsatzmöglichkeiten für die Extended 80
Column Card (erweiterte 80-Z-Karte =
64K-Karte für den Apple Ile) erschließen.
Ein Teil der Programme laufen auch auf
dem Apple Ii Plus, doch ist „MMU 2.0"
primär für 64K-Karte-Besitzer gedacht.
Gerätevoraussetzung: Apple Ile mit 64K-
Karte oder lic
Softbreaker 1.0
Eine softwaremäßige Interrupt-Utility
für die Apple lie 64K-Karte
vonU. Stiehl
1984, Diskette und Manual, DM 48, —
ISBN 3-7785-1022-3
Softbreaker ist ein Assemblerprogramm, mit
dessen Hilfe Programme, die sich von der
64K-Karte (= Extended 80 Column Card für
den Apple lle) starten lassen, unterbrochen,
gespeichert, geladen und exakt an der Stelle
der Unterbrechung fortgeführt werden kön-
nen. Dadurch ist es auch möglich, Siche-
rungskopien von sogenannten kopierge-
schützten Programmen herzustellen.
Mit Softbreaker unterbrochene Programme
werden komplett, d. h. die ganzen 64K ein-
schließlich Language Card, in nur ca. 11 Se-
kunden auf einer formatierten Diskette gesi-
chert.
Gerätevoraussetzung: Apple Ile mit 64K-
Karte
Hüthig Software Service,
Postfach 10 28 69, D-6900 Heidelberg
Haben Sie Ihren Monitor schon „80-Zei-
chen-getestet“? Was bei einer Darstel-
lung mit 40 Zeichen pro Zeile noch ein
Genuß für das Auge ist, kann bei 80 Zei-
chen bereits zur Qual werden. Ein durch-
schnittliches Fernsehgerät zeigt waag-
rechte Tropfen und senkrechte Fädchen,
ein Gleichheitszeichen mit einem Minus-
symbol darunter entspricht dem großen E,
die an den Ecken angeknabberten D er-
scheinen wie O, Kleinbuchstaben sind
noch schlechter zu erkennen. Qualitativ
mittelmäßige Monitore lassen immerhin im
Normalmodus ein einigermaßen ermü-
dungsfreies Lesen zu, doch selbst gute
bis sehr gute Monitore enttäuschen späte-
stens bei inverser 80-Zeichendarstellung.
Senkrechte Linien erscheinen nur hauch-
dünn.
Wenn Sie Ihren Geldbeutel nicht mit dem
Kauf eines teuren Spitzenmonitors bela-
sten wollen, dann schlage ich Ihnen meine
preiswerte Lösung vor. Ändern Sie den
Zeichensatz der 80-Zeichenkarte.
Schreibt man die senkrechten Linien über-
proportional dick auf den Bildschirm, so
erscheinen diese auf Grund der Unzuläng-
lichkeiten des Systems gerade so breit wie
die nicht geänderten, waagrechten Linien.
Das im folgenden beschriebene Pro-
gramm BITEDITOR unterstützt Sie beim
„Umstricken“ Ihres Zeichensatzes.
Mein ursprünglicher Wunsch war es, das
an meiner Arbeitsstelle viel benutzte Multi-
plan auf den Apple-Il-Rechnern mit 80
Zeichen pro Zeile optisch so ansprechend
laufen lassen zu können wie mit 40 Zei-
chen, nämlich mit der Möglichkeit der in-
versen Darstellung. Das Feld, in welches
Sie bei Multiplan gerade schreiben, er-
scheint invers. Bei 80-Zeichenkarten ohne
inversen Zeichensatz wird das bearbeiten-
de Feld durch Größer/Kleinersymbole ein-
gegrenzt, welche aber Raum der Nachbar-
felder beanspruchen und dort ein Zeichen
unterdrücken. Besonders bei einigerma-
Ben gefüllten Tabellen müssen Sie das so
gekennzeichnete Arbeitsfeld erst mühsam
suchen, während das inverse Feld sofort
ins Auge sticht. Nach der Modifikation er-
gibt sich durch die hardwaremäßige Um-
schaltung zwischen deutschem und ame-
rikanischem Zeichensatz für Multiplan ein
weiterer Vorteil. Texte können mit dem
deutschen Zeichensatz geschrieben wer-
den, Formeln wirken wesentlich übersicht-
licher mit den entsprechenden Klammern,
welche ja dieselben ASCII-Werte wie die
deutschen Sonderzeichen besitzen.
Auch Freunde des Applewriter werden
dies zu schätzen wissen. Es muß nicht
Peeker 7/85
Technik 94
Bit-Editor
Zeichensatz-EPROMss für die Videx-Karte
mehr mühsam der Maschinencode ge-
knackt und geändert werden, damit der
richtige Zeichensatz angesprochen wird,
sondern man wählt deutsch oder amerika-
nisch mittels Schalter. Für Pascal gilt ähnli-
ches wie für Multiplan, Texte in deutsch,
übersichtliche Syntax mit amerikanischem
Zeichensatz. Sinngemäß trifft dies auch für
weitere Programme zu. In CP/M-BASIC
entsprechen nun die Befehle INVERSE
und NORMAL ihrer tatsächlichen Bedeu-
tung.
Grundidee
Im allgemeinen zieren drei EPROMs das
80-Zeichen-Interface. In einem steht das
Programm für die Karte, die beiden ande-
ren enthalten den deutschen bzw. den
amerikanischen Zeichensatz. Karten mit
inverser Darstellungsmöglichkeit opfern
einen der beiden länderspezifischen Zei-
chensätze. Das Hin- und Herschalten zwi-
schen den Zeichensätzen erfolgt soft-
waremäßig, d.h. durch einen Befehl (z. B.
Ctrl-Z 2, Ctrl-Z 3). Neuere 80-Zeichenkar-
ten verwenden ein Zeichensatz-EPROM
mit größerem Speicher. Es enthält den
normalen und den inversen Zeichensatz
desselben Landes. Der Befehl schaltet
hier innerhalb des EPROMSs auf den ent-
sprechenden Speicherbereich (normal
oder invers). Meine Modifikation läßt sich
prinzipiell bei allen Arten von Karten
durchführen, wobei zwischenzeitlich eine
Karte in ähnlicher Form am Markt erschie-
nen ist.
von Joachim Klamt
Nach der Änderung werden die Zeichen-
satz-EPROMSs 2716 (2K) durch die größe-
ren 2732 (AK) ersetzt. In dem beim Ein-
schalten aktivierten EPROM stehen der
normale deutsche und amerikanische Zei-
chensatz, im anderen durch Befehl an-
wählbaren EPROM der inverse deutsche
und amerikanische. Die jeweils höchst-
wertige Adreßleitung A11 wird über einen
gemeinsamen Pull-up-Widerstand an Vcc
gelegt. Ein einpoliger Schließer genügt,
um A11 an Masse zu legen, wodurch die
andere Hälfte der EPROMs angesteuert
und gelesen wird. So wählt der Schalter
einen der beiden Zeichensätze, die Soft-
ware entscheidet über normale oder inver-
se Darstellung.
Die EPROMs 2716 und 2732 sind prak-
tisch pinkompatibel. Lediglich die Leiter-
bahnen zum Pin 21 (A11) sollten bei bei-
den 2732 aufgetrennt werden, um A11,
wie im Bild 1 gezeigt, neu zu verdrahten.
Weitere Hardware-Änderungen sind nicht
notwendig. |
Bild 1
29
Das Prinzip der 80-Zeichendarstel-
lung
Jedem am Bildschirm dargestellten Zei-
chen steht eine Matrix von 8 « 9 Punkten
zur Verfügung. Ein Zeichen besteht somit
aus 72 einzelnen Punkten, die sich auf 9
Reihen mit 8 Spalten verteilen. Man kann
sich jede Reihe als 3stellige Binärzahl vor-
stellen, wobei eine O einem nicht gesetz-
ten Punkt entspricht ‘und eine 1 einem
gesetzten. Für jedes Zeichen wird ein Be-
reich von 16 8stelligen Binärzahlen reser-
viert, wobei nur die ersten 9 ausgewertet
werden.
Das Betriebssystem der Karte (Programm-
EPROM) veranlaßt das Auslesen der ent-
sprechenden 9 Werte aus dem Zeichen-
satz-EPROM und deren punktweise Dar-
stellung am Bildschirm.
Die neue softwaremäßige Umschaltung
zwischen normaler und inverser Anzeige
tritt an die Stelle der bisherigen länderspe-
zifischen Zeichensatzumschaltung. Ein
einmal invers geschriebener Text bleibt als
solcher am Bildschirm erhalten, es sei
Foto A: Normaler Zeichensatz. Ein billiger
Monitor in üblicher Einstellung zeigt bei
80-Zeichendarstellung dieses „beschei-
dene“ Bild.
. NalBrEte..B°
208 z8327710° >
Eirze.nr Sei
... „nn.
- =
” “>
Foto B: Normaler Zeichensatz. Der Moni-
tor ist für 80-Zeichendarstellung „optimal“
eingestellt, jedoch dann nicht für 80 Zei-
chen invers.
30
denn, man überschreibt ihn im Normal-
modus.
Neue Zeichensatz-EPROMs
Wie ändere ich nun die Zeichensätze in
den EPROMSs? Falls Sie nicht gerade ei-
nen völlig neuen Zeichensatz kreieren
wollen, so empfehle ich Ihnen folgende
Methode. Lesen Sie die alten EPROMSs,
z.B. mit einem EPROM-Brenner, und spei-
chern Sie die Inhalte als Binär-Files auf
Diskette. Mit dem Programm BITEDITOR
können Sie die Zeichensatz-Files nach
Wunsch ändern, wieder auf Diskette
schreiben und neue EPROMs schießen.
Sie ersetzen Ihre alten Zeichensatz-
EPROMs der 80-Zeichenkarte durch die
neuen und können diese mit BITEDITOR
testen (Menüpunkt TEST 80 Z). Wenn Sie
den bis jetzt geänderten Zeichensatz-File
laden, können Sie noch weitere Korrektu-
ren vornehmen und wieder neu brennen.
Verlieren Sie nicht den Mut, wenn Sie
immer wieder einen Buchstaben entdek-
ken, der Ihnen so noch nicht gefällt: än-
dern und neu brennen.
Ich habe nach wenigen Tagen den inver-
sen Zeichensatz um eine Matrixlinie tiefer
gesetzt. Die Unterlängen sind jetzt zwar
kürzer, dafür kleben die inversen Zeichen
nicht kontrastarm am oberen Zeilenrand.
Sie werden oben und unten durch eine
durchgehende Linie abgegrenzt, selbst
dann, wenn ober- und unterhalb der Zeile
keine inverse Darstellung erfolgt. Lediglich
die Unterlängen reichen dann bis an den
unteren Rand des Feldes. Die alphanume-
rischen Zeichenbereiche, die Sie tiefer
setzen wollen, laden Sie einfach mit
BLOAD um eine Adresse nach oben ver-
schoben in den Speicher des Rechners.
Später habe ich dann auch den normalen
Zeichensatz tiefer gestellt, damit normale
und inverse Darstellung innerhalb einer
Zeile auf einer Linie liegen. Ein Verschie-
ben des Bereiches mit den Grafiksymbo-
len erscheint nicht sinnvoll, da diese bis an
die Ränder der Matrix reichen sollen. Nur
so können bei der Aneinanderreihung
durchgehende Figuren entstehen.
Ähnliche Überlegungen habe ich auch an-
gestellt für ein seitliches Verschieben in-
nerhalb der Matrix nach rechts. Links ha-
ben mehr Buchstaben einen senkrechten
Strich als rechts. Der Kontrast zum nicht
inversen Nachbarfeld bleibt öfter gewahrt,
wenn die Buchstaben nicht linksbündig mit
dem inversen Feld beginnen, sondern
rechtsbündig mit diesem enden. So ent-
stand das Unterprogramm „nach rechts
verschieben“, welches vom Menü aus mit
VERSCHIEBEN aufgerufen wird. Das von
BITEDITOR gerade angezeigte Zeichen
wird um eine Matrixspalte nach rechts ver-
schoben. Durch Einbinden in eine FOR-
NEXT-Schleife könnten auch ganze Berei-
che verschoben werden.
Der Versuch hat jedoch gezeigt, daß Zei-
chen nicht sauber geschrieben werden,
wenn sie bis an den rechten Rand der
Matrix reichen. Selbst der normale, nicht
fette Zeichensatz leidet darunter. Tatsäch-
lich werden nämlich nicht 8 & 9, sondern
nur 7 #9 Punkte der Matrix zur Zeichenbil-
dung herangezogen. Die 8. Spalte kann
zum Zeichenabstand gerechnet werden.
Meine Änderungen beschränken sich des-
halb auf ein Tieferstellen des normalen
und inversen Zeichensatzes sowie auf das
Verbreitern der senkrechten Zeichenantei-
le des inversen Zeichensatzes. Zeigt Ihr
Bildschirmgerät bereits den normalen Zei-
chensatz schlecht an, so sollten Sie auch
diesen fett brennen. Sie können ihn leicht
durch Invertieren des inversen, fetten Zei-
chensatzes gewinnen. Durch Aufruf des
Menüpunktes ?TINVERTIEREN (I =
Ctrl-I) wird der gesamte Zeichensatz-File
im Speicher invertiert.
Haben Sie Ihren deutschen Zeichensatz
wunschgerecht erstellt, so laden Sie ihn
hinter sich selbst in den Speicher (ab
$5800) und ändern mit BITEDITOR die
deutschen Sonderzeichen in die amerika-
nischen. Dabei sollte auch die Programm-
variable FL$ = “800“ (Zeile 4700) in FL$
= *1000° geändert werden, damit die hin-
tereinander geladenen Files als ein einzi-
ger behandelt werden. Sie sollten nun
zwei Files von je 18 Sektoren erstellt ha-
ben. Im ersten stehen der deutsche und
amerikanische Zeichensatz in normaler
Ausführung, im zweiten beide Zeichensät-
ze invers.
n wesentlichen erlaubt
-+ Punkte der Natrix setzen oder löschen
(Andern bzu. Neuerstallen von Zeichen)
-> INVERTIEREN des gesanten Zeichens
-> Verschieben einzelner Zeichen nac
{nur bedingt ratsar)
ss Harr . ng
ın+ MIIENITAD Fr
war “
„u?
caran ." - |;
2 eRTiIic 3
” * en
-
2
=
a
Er
”»
Zei
>
Foto C: Fetter Zeichensatz. Darstellung
am gleichen Monitor bei Verwendung des
mit BITEDITOR verbesserten Zeichen-
satzes.
Peeker 7/85
Foto D: Fett-inverser Zeichensatz. Die
deutlichste Verbesserung zeigt sich bei
der Darstellung des inversen Zeichensat-
zes im 80-Zeichenmodus. Der nicht fette
Zeichensatz war am Foto praktisch unle-
serlich.
Die Bedienung des Programms
Das Applesoft-Programm BITEDITOR bie-
tet im wesentlichen folgende Optionen:
® Punkte der Matrix setzen oder löschen
(Ändern bzw. Neuerstellen von Zeichen),
® Invertieren des gesamten Zeichen-
satzes,
® Verschieben einzelner Zeichen nach
rechts (nur bedingt ratsam).
Ein versehentliches Verlassen des Pro-
gramms ist völlig unproblematisch, da die
zu editierenden Zeichensätze nicht als Va-
riablen des BASIC-Programms existieren,
sondern als Binär-Files in den Rechner
geladen werden. Auch das Ändern von
Programmzeilen beeinflußt daher die Zei-
chensätze nicht.
Nach dem Starten des Programms er-
scheinen Hauptmenü und Arbeitsfeld
(Bild 2) auf dem Bildschirm. Die Menü-
punkte werden durch Eingabe des 1.
Buchstabens aufgerufen:
LADEN - Sie werden nach dem Namen
des zu ladenden Zeichensatz-Files ge-
fragt. Der File steht danach im Speicher ab
der Adresse $5000 (FS$ = "5000*).
SPEICHERN - Sie können einen Namen
eingeben, unter welchem Ihr geänderter
Zeichensatz-File abgespeichert wird;
<RETURN> allein übernimmt den beim
Laden angegeben (VORGABE) Namen.
Achten Sie auf die Größe der Variablen
FL$, damit Sie den gesamten File sichern.
# HEX-ADR - Durch die direkte Eingabe
einer Hexadezimaladresse im Bereich von
$5000 bis $6FFF werden die Speicherin-
halte ab dieser Adresse angezeigt. Die
Zeichen erscheinen immer richtig in der
Peeker 7/85
nachgebildeten Matrix, wenn die rechte
Stelle der Hexadezimalzahl O ist. Die Län-
ge des anzuzeigenden Bereichs legt die
Variable LG (LG = 9) fest. Die Bildschirm-
aufteilung läßt Werte von 1 bis 16 zu.
Die Intervallvariable IV (IV = 16) gibt an,
daß nach jeweils 16 Adressen der Bereich
des nächsten Zeichens beginnt.
Pfeiltasten — Mit den Pfeiltasten kann vor-
wärts und rückwärts „geblättert” werden.
Das geschieht durch Erhöhen oder Er-
niedrigen des Wertes für die momentan
gültige Adresse um den Betrag IV. Der
Inhalt des neuen Bereiches wird im Bitmu-
ster-Fenster angezeigt.
LEERTASTE - Mit der Leertaste invertie-
ren Sie das Feld unter dem Cursor und
können somit Zeichen punktweise ändern.
IJKM- Das Bitmuster liegt innerhalb des
Rahmens aus Sternchen. Das Pluszeichen
ersetzt den blinkenden Cursor, welcher ja
nicht erkennen ließe, ob an seinem Platz
ein normales oder ein inverses Feld steht.
I, J, K und M führen den Cursor wie im
ESC-Modus in Applesoft.
NEUSTART - Gefallen Ihnen Ihre Ände-
rungen nicht, so wird — sofern noch nicht
<RETURN> gedrückt wurde — mit NEU-
START das unveränderte Zeichen aus
dem Speicher geholt und zur Anzeige ge-
bracht.
<RETURN> — Das geänderte Zeichen
wird mit <RETURN> wie am Bildschirm
sichtbar in den Rechnerspeicher über-
nommen.
ADRESSE INHALT BITMUSTER
FKFRRFRHRRR
*r+
* HERER
"RR
*
SHBuE
8
& u
REBAB
Karsanıne
FS$=5R008
Bild 2
FL+=808
TECHNIK 9.4
WERTEAUSGABE - Bei Wahl des Menü-
punktes WERTEAUSGABE erscheinen in
der ersten Spalte des Arbeitsfeldes
ADRESSE alle Adressen, sowie in der
zweiten Spalte INHALT deren Werte. Die
Umwandlungsroutinen am Anfang des
Programms (HEX-DEZ und DEZ-BIN) las-
sen sich leicht in andere BASIC-Program-
me einbinden.
VERSCHIEBEN — Das angezeigte Zei-
chen wird um eine Matrixspalte nach
rechts verschoben. Die Informationen der
Spalte rechts außen erscheinen in der er-
sten Spalte links.
!INVERTIEREN - Bei Eingabe von Ctrl-I
wird, wie schon erwähnt, der gesamte Zei-
chensatz invertiert. Ein inverser Zeichen-
satz wird dabei in einen normalen verwan-
delt. Der Bereich beginnt bei FS$ und
endet bei (FS$ + FL$).
TEST 80 Z - Hierbei wird die 80-Zeichen-
karte eingeschaltet. Sie können jetzt Zei-
chen per Tastendruck eingeben. Steckt
ein bereits mit BITEDITOR geändertes
EPROM in der installierten 80-Zeichenkar-
te, so können Sie Ihre Änderungen aus-
werten und nach dem Zurückschalten ins
Hauptmenü eventuelle Korrekturen vor-
nehmen. Sie ändern dabei natürlich nur
den Zeichensatz-File im Rechner. Die
nächste Auswertung kann erst nach er-
neutem Brennen des EPROMSs erfolgen.
Die Kopfzeile zeigt drei mögliche Befehle
an. Ctrl-I und Ctri-N schalten auf inverse
KOMMANDOS
1. BUCHSTA-)
BE EINGEBEN)
LADEN |
SPEICHERN
# HEX-ADR
au,
LEERTASTE
3x
'NEUS” ART.
SRETURND
WERTEAUSGABE
%*
*
*
*
*
x |
*
*
*
_QUITTIEREN
LG=9 Iveie
Lesen Sie weiter auf Seite 50
31
Verkauf Software
Pascal-Toolbox und Anwen-
dersoftware billig abzugeben. Info
gegen Rückporto von Ernst Heinz
Püttkampsweg 13, 2 Hamburg 52
Intelligenz-Test (lQ@) für +/e/c,
Disk mit ca. 170K Daten für 30 DM
per Nachnahme bei: Frank Knab
6500 Mainz 43 Oppenheimer Str.37
APPLE Il: ’GIANT WORLD’ ist
da!! x Das neu Top-Adventure mit x
* Spitzengrafik für riesigen x
* Spielspaß! Es lohnt sich! x
Für nur 89,— DM Vorkasse o.NN
bei #+* FANTASTIC-Software xxx
x** Grasweg 7, 2857 Langen 3 xx
AWII-Manual (dtsch) + WPL
DM 25 Privat-Dater (dBASE) DM
80, Biorhythmus (prof) DM 120
bei: Geßner, Haus 70, 8431 Kot-
tingwörth Tel: 084 61/84 53
Über 100 HGR-Farben, HGR-
Schrift in bel. Größe DM 40,-
0261/63586
*x* Apple Il Steuer xx ersetzt
alle Lohn- u. Eink. Steuertabellen
+ unbegrenzte Beträge und Kin-
der + Länderanpassung Kirchen-
steuer DM 120,- f. 1985 mit Nach-
lieferung 1986; Info kostenlos; W.
Hagenmaier * Malerwinkel 7
8087 Türkenfeld x
Verkauf Hardware
256 K RAM Karte AP 17 IBS
599 DM ESW 103 VHB Tel: 0521/
870424
== BRUNDW
== Büroelektronik
1 Berlin 30 : ® 0 30-26 111 26
Keithstr. 26 -
Bitte verwenden Sie für Kleinanzeigen
die vorgedruckten Antwortkarten in
diesem Heft.
32
Apple Ilc, kompl. incl. ausführl.
Literatur zu verk. DM 2500,—
Tel: 021 61/4 1460.
Fernschreiberinterface am
Gameport m. Programm DM 79,-
P. Benner, Hubertusstr. 131, 4150
Krefeld
MACINTOSH 128KB 2 Mon.
alt VHB DM 6100,. Tel: 061 21/
461371
EPROM’S 2716 & 8 DM RAM'’s
4116-2 43 DM Tel: 06251/69742.
Verkaufe 128K Mac, Imagew-
riter, 2 Lfw. + umfangreiche Soft-
ware (Originale) auch getrennt. v.
Wennstein, Postf. 2057 Wentorf
TEAC 55F 560,— 55B 515,- *
SSDD 10 St 42,- 96 tpi DS 78,—
Lochverst. europ. Markenw. & Box
Rglas. Schl. für 40-42,- für 80-
49,— * Monitore 18Mhz 12” entsp.
gr. ab 298,—. VICO,
Selchower Str. 31, 1000 Bin 44
*x**+* Apple Supermodem xxx*
V21, V23 und Bell, 300-1200
Baud komplett auf einer Karte, mit
Software startfertig nur 398 DM.
Rolf Kiupel, Tel. 04 31/55 54 27
Apple Il+ und Zubehör: Apple
II+ 48K 900,-, 16KRam 80,-, Ori-
ginal Pal-Karte 190,-, Pal-Karte
90,— Accelerator Il 790,-, alle Prei-
se VHB. Tel: 06221/74832 oder
07 21/3739 14.
256K-RAM Karte für Apple
II/BASIS mit Treibersoftware DM
700,— W. Porten, 0221/35 1751.
MACINTOSH 512K-Erweite-
rung 890 DM 6 Mon. Garantie;
24 Stunden Service Händleranfr.
erwünscht P. Clotten Remystr. 5;
5413 Bendorf 0 26 22/54 58
PEEkeR
-= RUND
4 Büroelektronik GmbH
Bachstr. 104 : 2 HH 76 : ®& 0 40-220 1155
Börse
MACINTOSH 512K-Erweite-
rung 6 Mon. Garantie; 24 Stun-
den Service Händleranfr. er-
wünscht P. Clotten Remystr. 5;
5413 Bendorf 062 22/54 58
Verk. Apple Il+ mit 2 Disk Il,
Contr., Monitor, Softw., VP 2000
Fr. Tel. 056/9635 75 Schweiz b.
Baden.
RAMKARTE (BASIS) 108/
APPLE) 256KB für 650,— DM - 1
EHRING-CONTROLLEER für
2x80TR. 130,- Tel: 0201/
502192
Verkaufe Typenraddrucker
Silverreed EXP 500 DIN A4 quer
wenig gebraucht. Evtl. mit para.
Int. VB 1100 DM,
Tel: 02122/55529
Kennen Sie den Macintosh?
Können Sie ihn programmieren
und haben Sie interessante Ideen,
dann sind Sie der richtige Partner
für uns. Wir vermarkten Ihre Pro-
gramme bundesweit — oder ertei-
len Programmieraufträge. Chiffre
P1002
Anwendersoftware für
Handwerk Tischlerei, Fenster-
bau, 7 Mitarb. gesucht. DOS-PRO-
DOS- oder CPM Angebote an
Heinz Heubrock Osterbauer 101,
4715 Ascheberg
(=
KRRKKRKKRKRKRRKRRRRR
Floppysubsystem
für Apple Il
2 x 3,5" TEAC FD-35F
max. 2 x 1MB
Autopatch-Coniroller
inkl. Manual und SW
ALU-Profil-Gehäuse m. Netzt.
komplett anschlußfertig
nur DM 2398,—
DIL 2 2 2 2 > 2 > 2 > > 2 25
Telekommunikation
Anschlußkabel
Dataphon S21d
Terminalsoftware
komplett anschlußfertig
nur DM 398,—
KRRRRKRRRKRRRRRRKR
TISCH & ZETTL GdbR
Elektronicveririeb
Rosenstr. 33, 8034 Germering
Telefon 089/841 68 17
KRHKRKFKKHKKRKRRRRK
KKRKKKKKKKKRRR
KRHRRRKRKKKKRR
KAKKKKKAKRKHRKRR
KRHKKKKHKRKKKKKKKRRR
KKARKKRK
Suche amerikanische Aktienkurse
auf Datenträger. Zeitraum 1978 —
heute. Angebote an Tel. 07251/
103068, H. Britting.
Ihr apple Partner in der
Schweiz C&L Computershop
Zentralstraße 93
5430 Wettingen
Verlangen Sie unseren ungewöhn-
lichen Versandkatalog.
Progr. Ihre Eproms; 2508-
2564 u. 27 16-2 7128;
0 89/68 53 36
MC 3470 (der Leseverstärker auf
dem Analogboard): DM 10,-, A.
Deckers, PF 967, 7 Stuttgart 1
MAC mit Programmen sucht
MAC ohne Programme! E. Schrei-
ber 2070 Ahrensburg
1 Preisliste
i kostenlos!
Katalog DM 2,—
Unser Angebot im Juli
Chinon Laufwerk
(Test peeker 5/85)
DM 398,-
Profimax Ill
Lazar Ilze, Test peeker 6/85)
DM 1248,—
D.O.S. Computersysteme
Am Kühnbach 42, 7170 Schwäbisch Hall 11
Telefon (0791) 51736
Peeker 7/85
Ulrich Stiehl
6502 leicht gemacht
Teil 1
1 Warum dieser Beitrag geschrieben
wurde
Ziel dieses Beitrags ist es, den Assem-
bler-Neuling mit der Programmierung
des 6502-Prozessors vertraut zu
machen. Dabei stand nicht die Vollstän-
digkeit, sondern eine ballastfreie Glie-
derung im Vordergrund. Der in der
Apple II Familie enthaltene 6502 eignet
sich aus verschiedenen Gründen für die
ersten Gehversuche in der Assembler-
programmierung:
- Der Befehlssatz dieses Prozessors
ist vergleichsweise einfach zu erlernen.
— Dieser Prozessor ist weitverbreitet
und findet nicht nur im Apple, sondern
z.B. auch in vielen Commodore Rech-
nern Anwendung.
Lehrbücher über Maschinensprache
sind leider in der Regel völlig undidak-
tisch aufgebaut und beginnen meist mit
der Binärmathematik, die für den Anfän-
ger naturgemäß zunächst ein Buch mit
sieben Siegeln ist. Deshalb sind viele
Assembler-Anfänger frustriert und mei-
nen, daß Maschinensprache nur etwas
für „Eingeweihte“ sei. In Wirklichkeit ist
Assembler nicht wesentlich schwieriger
als eine Hochsprache wie BASIC. Wäh-
rend jedoch z. B. BASIC sofort „Erfolgs-
erlebnisse‘“ vermittelt, dauert es in As-
sembler relativ lange, bis „sinnvolle“
Programme geschrieben werden kön-
nen. Dies rührt daher, daß aus Sicht der
Maschinensprache BASIC-Befehle stets
Makrobefehle sind, d. h. ein BASIC-
Befehl wie HOME (= lösche den Bild-
schirm) setzt sich in Wirklichkeit aus
zahlreichen elementaren Maschinenbe-
fehlen zusammen, die isoliert betrachtet
keine sinnvollen Aufgaben zu erfüllen
scheinen. Maschinensprachlich gese-
hen besteht die Aufgabe des HOME-Be-
fehls darin, in jeder einzelnen Zelle des
Bildschirmspeichers eine Leertaste zu
Peeker 7/85
speichern und anschließend den Cursor
in Zeile 1, Spalte 1 zu positionieren.
Beim Apple ist der Bildschirmspeicher
kein homogener Block, so daß kompli-
zierte Algorithmen angewandt werden
müssen, um versehentliches Löschen
von Speicherbereichen, die nicht zum
Bildschirm gehören, zu vermeiden. So
wird verständlich, daß die Assembler-
Programmierung des HOME-Befehls
bereits ein größeres Unterfangen dar-
stellt.
2 Wann ist das Programmieren in
Assembler vorzuziehen?
Assembler-Programme sind fast immer
erheblich kompakter und schneller als
die entsprechenden Programme in ir-
gendeiner höheren Programmierspra-
che. Dies liegt in der Tatsache begrün-
det, daß ein Computer grundsätzlich nur
Maschinenbefehle versteht. Bei einer
Interpreter-Sprache wie BASIC muß der
Interpreter jeden Befehl des BASIC-
Quellenprogramms zunächst in eine Ma-
schinenbefehlssequenz transformieren
und diese dann ausführen. Bei einer
Compiler-Sprache wie PASCAL — übri-
gens lassen sich auch BASIC-Pro-
gramme kompileren — erfolgt die Um-
wandlung in Maschinenbefehlssequen-
zen durch die Kompilation. Da dies je-
doch ein mechanischer „Schema F“-
Prozeß ist, entsteht ein aufgeblähtes,
umständliches Maschinenprogramm,
das wesentlich mehr Speicherraum ein-
nimmt und erheblich langsamer abläuft
als das entsprechende reine Assembler-
Programm.
Grundsätzlich empfiehlt sich das Pro-
grammieren in Assembler stets dann,
wenn maximale Kompaktheit und/oder
maximale Geschwindigkeit des Pro-
gramms erforderlich sind. Ferner ist As-
sembler angebracht, wenn die Hoch-
sprache(n) nicht über diejenigen Befehle
verfügen, die zur optimalen Lösung einer
Programmieraufgabe erforderlich sind.
Die beiden Applesoft-BASIC-Beispiele in
Tabelle 1 veranschaulichen den Zeitge-
winn bei Verwendung der Assembler-
Sprache. Bei Programm 1 handelt es
sich um ein Zählprogramm mit Integer-
Zahlen. Da z.B. der TASC-Compiler
(ein Compiler für den Apple Il Plus)
über echte Integer-Arithmetik verfügt,
ist das entsprechende Assembler-Pro-
gramm „nur“ neunmal schneller als die
TASC-Version.
Tabelle 1: Geschwindigkeitsvergleich (Dauer in Sekunden)
Programm Assembler
1 5
2 .25
10 REM PROGRAMM 1
USA =1YE% =;10009
30 FORC = S% TO E% : REM
START BIS ENDE
40 A% = C + E% : REM ADDIERE
ZÄHLER ZU E%
50 NEXT
TASC-Compiler Hayden-Compiler
Applesoft
155 38
23 64
10 REM PROGRAMM 2
20:5%: =: B192: E% =:24575:
Zr =D
80 FORC = S% TO EA
40 POKE C,Z% : REM LÖSCHE
SPEICHERSTELLE
50 NEXT
33
NUL @8$
A
B
C
ker 2
E
F
BEIL 6
Re H
TAB: 3
| J
t K
FF L
RIN M
so N
SI o
P
KON:
R
XOFF S
R
_ U
V
W
X
Y
zZ
a
\Ö
U
t
I
4
$
%
&
(
)
.
/
0
1
2
3
4
5
6
7
8
9
“
5
?
34
01
02
03
04
05
07
08
09
OA
0B
0C
OD
OE
OF
10
11
12
13
14
15
16
17
18
19
1A
1B
is
1D
1E
1F
20
21
22
23
24
25
26
27
28
29
2A
2B
2C
2D
2E
2F
30
31
32
33
34
35
36
37
38
39
3A
3B
3
3D
3E
3F
00000000
00000001
00000010
00000011
00000100
00000101
00000110
00000111
00001000
00001001
00001010
00001011
00001100
00001101
00001110
00001111
00010000
00010001
00010010
00010011
00010100
00010101
00010110
00010111
00011000
00011001
00011010
00011011
00011100
00011101
00011110
00011111
00100000
00100001
00100010
00100011
00100100
00100101
00100110
00100111
00101000
00101001
00101010
00101011
00101100
00101101
00101110
00101111
00110000
00110001
00110010
00110011
00110100
00110101
‘00110110
00110111
00111000
00111001
00111010
00111011
00111100
00111101
00111110
00111111
000
001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
022
023
024
025
026
027
028
029
030
031
032
033
034
035
036
037
038
039
040
041
042
043
044
045
046
047
048
049
050
051
052
053
054
055
056
057
058
059
060
061
062
063
u A
TCo>N<XF<cIHR2D BT HOZZrR- "IH IT no oO U >>
Im —
nnd SS © Ei a Mine var Zt FE lin, ee Sr. > Min m BE, = Sehe Shen Wr hr © Are 7
w)
m
-
40
41
42
43
4
45
46
47
48
49
4A
4B
4C
4D
4E
4F
50
51
52
53
54
55
56
57
58
59
5A
5B
5C
5D
SE
Sr
60
61
62
63
64
65
66
67
68
69
BA
6B
6C
6D
BE
6F
70
71
72
73
74
75
76
77
78
79
7A
7B
7C
7D
TE
7F
ASCII-Tabelle
01000000
01000001
01000010
01000011
01000100
01000101
01000110
01000111
01001000
01001001
01001010
01001011
01001100
01001101
01001110
01001111
01010000
01010001
01010010
01010011
01010100
01010101
01010110
01010111
01011000
01011001
01011010
01011011
01011100
01011101
01011110
01011111
01100000
01100001
01100010
01100011
01100100.
01100101
01100110
01100111
01101000
01101001
01101010
01101011
01101100
01101101
01101110
01101111
01110000
01110001
01110010
01110011
01110100
01110101
01110110
01110111
01111000
01111001
01111010
01111011
01111100
01111101
01111110
01111111
064
065
066
067
068
069
070
071
072
073
074
075
076
077
078
079
080
081
082
083
084
085
086
087
088
089
090
091
092
093
094
095
096
097
098
099
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
— 0
SEP FETT IED DI DO ZELTEN EDER ET
oo PROD—- DO.
BR AN
80
81
82
83
84
85
86
87
88
89
8A
8B
8C
8D
8E
8r
90
91
92
93
94
95
96
97
98
99
9A
9B
9C
9D
9E
9F
AO
A1
A2
A3
A4
A5
A6
A7
A8
A9
AA
AB
AC
AD
AE
AF
BO
B1
B2
B3
B4
B5
B6
B7
B8
BI
BA
BB
BC
BD
BE
BF
10000000
10000001
10000010
10000011
10000100
10000101
10000110
10000111
10001000
10001001
10001010
10001011
10001100
10001101
10001110
10001111
10010000
10010001
10010010
10010011
10010100
10010101
10010110
10010111
10011000
10011001
10011010
10011011
10011100
10011101
10011110
10011111
10100000
10100001
10100010
10100011
10100100
10100101
10100110
10100111
10101000
10101001
10101010
10101011
10101100
10101101
10101110
10101111
10110000
10110001
10110010
10110011
10110100
10110101
10110110
10110111
10111000
10111001
10111010
10111011
10111100
10111101
10111110
10111111
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162°
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
ns 0 [u
co» N<Xs<cHV DH VOZZTrA--IONMIOU>“
a a
177 EIERN. BT EEE EEE NETTE TE IE 20 T—€—
O
m
co
C1
C2
C3
C4
C5
C6
C7
C8
c9
CA
CB
CC
CD
CE
CF
DO
D1
D2
D3
D4
D5
D6
D7
D8
DI
DA
DB
DC
DD
DE
DF
EO
E1
E2
E3
E4
E5
E6
E7
E8
E9
EA
EB
EC
ED
FE
Sr
FO
Ft
F2
F3
F4
F5
F6
F7
F8
Fg
FA
FB
FC
FD
"FE
FF
11000000
11000001
11000010
11000011
11000100
11000101
11000110
11000111
11001000
11001001
11001010
11001011
11001100
11001101
11001110
11001111
11010000
11010001
11010010
11010011
11010100
11010101
11010110
11010111
11011000
11011001
11011010
11011011
11011100
11011101
11011110
11011111
11100000
11100001
11100010
11100011
11100100
11100101
11100110
11100111
11101000
11101001
11101010
11101011
11101100
11101101
11101110
11101111
11110000
11110001
11110010
11110011
11110100
11110101
11110110
11110111
11111000
11111001
11111010
11111011
11111100
11111101
11111110
11111111
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
Peeker 7/85
Bei dem Programm 2 geht es um das Lö-
schen eines Speicherbereiches (ähnlich
wie bei Eingabe von HOME). Hierfür gibt
es jedoch keinen entsprechenden
BASIC-Befehl, so daß eine umständliche
Simulation mit der POKE-Anweisung er-
forderlich ist. Infolgedessen ist die
Assembler- über 50mal schneller als die
TASC-Version.
Per Umkehrschluß läßt sich aus diesen
beiden Beispielen folgern, daß
Assembler-Programmierung stets dann
überflüssig ist, wenn die Hochsprache
exakt über diejenigen Makrobefehle ver-
fügt, die maschinensprachlich ausge-
führt werden sollen. So führt z. B. die
Assembler-Programmierung des HOME-
Befehls zu keiner Geschwindigkeitsstei-
gerung, da dieser bereits als Maschinen-
routine vorliegt, die der BASIC-
Interpreter lediglich aufzurufen braucht.
3 Dezimale und hexadezimale
Zahlen
Dezimale Zahlen haben die Basis 10 und
setzen sich aus den Ziffern 0, 1,2, 3, 4,5,
6, 7, 8, 9 zusammen.
Die Dezimalzahl 123 bedeutet
1 2 g
18-1 +10'-2 + 10-3 = 123
dezimal
Hexadezimale Zahlen haben die Basis
16 und setzen sich aus den Ziffern 0, 1,2,
3, 4,5,6, 7,8, 9,A,B,C,D, E, F zusam-
men.
Die hexadezimale Zahl $123 bedeutet
1 | 2 3
18:1 +: 16'-2+ . 1093 = 291
dezimal
Hexadezimalen Zahlen wird üblicherwei-
se ein Dollar-Zeichen vorangestellt, um
Verwechslungen mit Dezimalzahlen zu
vermeiden. Tabelle 2 gibt den Zusam-
menhang zwischen Hexadezimal- und
Dezimalzahlen sowie die entsprechen-
den ASCII-Zeichen (American Standard
Code for Information Interchange) für
den Bereich 0 bis 255 wieder. Wenn Zah-
len im Bereich von $100 (dezimal 256) bis
$FFFF (dezimal 65535) umzuwandeln
sind, hilft folgender Algorithmus weiter.
Beispiel:
$ABCD
Aufspaltung: AB + CD
Addition: 171-256 +.205-1
= 43981
dezimal
(Das binäre Zahlensystem wird erst spä-
ter eingeführt.)
Peeker 7/85
4 Byte, Register, Adresse und Befehl
Byte
Ein Byte läßt sich definieren als eine he-
xadezimale Zahl im Bereich $00 bis $FF
(dezimal O0 bis 255) und setzt sich aus 2
hexadezimalen Ziffern, Halbbytes oder
Nibbles zusammen. Z. B. besteht das By-
te $AB aus dem höherwertigen (= lin-
ken) Nibble $A und aus dem niederwerti-
gen (= rechten) Nibble $B.
Register
Alles was in einem Mikrocomputer ge-
schieht, geschieht durch den Mikropro-
zessor. Zur Vereinfachung nehmen wir
zunächst an, daß der 6502 aus drei Regi-
stern oder Mikroprozessor-Speicherstel-
len besteht, die Bytes laden, speichern
oder sonstwie manipulieren können. Die-
se drei Register heißen:
A oder Akkumulator
X oder Index Register X
Y oder Index Register Y.
Adresse
Der Speicher (RAM = Lese-Schreib-
Speicher, ROM = Nur-Lese-Speicher),
der vom 6502 adressiert werden kann,
läßt sich anschaulich als eine Kette von
$10000 oder 65536 Zellen (Speicherplät-
zen oder Speicherstellen) vorstellen, von
denen jede einzelne 1 Byte enthalten
kann. Diese Speicherstellen sind von
$0000 bis $FFFF (0 bis 65535) numeriert.
Die Adresse ist die Nummer einer Spei-
cherstelle. Es ist wichtig, zwischen der
Nummer einer Speicherstelle und ihrem
Wert — bildlich zwischen der Hausnum-
mer und dem Inhalt des Hauses — zu un-
terscheiden. Z. B. kann die Speicherstel-
le $00FF das Byte $AA und die Speicher-
stelle $00AA das Byte $FF enthalten.
Eine Adresse umfaßt beim 6502 grund-
sätzlich 2 Bytes. Beispielsweise besteht
die Adresse $100A aus dem höherwerti-
gen (= linken) Byte $10 und dem nieder-
wertigen (= rechten) Byte $0A. Zusam-
menfassend gilt:
a) Eine Speicherstelle enthält 1 Byte
($00 — $FF)
b) Eine Adresse umfaßt 2 Bytes ($0000
=iSFFFP).
(Als Sonderfall kann im Bereich $0000 —
$00FF eine Adresse auch durch 1 Byte
ausgedrückt werden. Weil hier das hö-
herwertige Byte implizit null ist ($00),
wird dieser Bereich als Zero-Page oder
Nullseite bezeichnet.)
Befehl
"Ein maschinensprachliches Programm
ist eine Folge von Befehlen. Der Befehls-
satz des 6502 Mikroprozessors umfaßt
56 verschiedene Anweisungen. Der
Zweck des Prozessors besteht darin, die-
se zu dekodieren und auszuführen. Bei
den meisten Befehlen wird der Inhalt ei-
ner Speicherstelle durch einen Register-
inhalt verändert und umgekehrt.
5 Laden und Speichern
LDA = Load Accumulator = Lade den
Akkumulator mit dem Inhalt, der sich in
einer bestimmten Speicherstelle befin-
det, und
STA = Store Accumulator = Speichere
den Inhalt des Akkumulators in eine be-
stimmte Speicherstelle
sind Beispiele von 6502 Befehlen. Die In-
struktionen LDA und STA lassen sich
wie folgt verdeutlichen:
LDA $035A lädt den Akkumulator mit
dem Byte, das sich in der Speicherstelle
$035A befindet (z.B. $FF). Nach dem La-
devorgang befindet sich im Akkumulator
dann das Byte $FF; gleichzeitig bleibt
$FF in der Speicherzelle $035A erhalten
(Abbildung 1a).
STA $0361 überträgt den Inhalt des Ak-
kumulators (jetzt $FF) in die Speicher-
stelle $0361; $FF bleibt gleichzeitig im
Akkumulator erhalten (Abbildung 1b).
Lade- und Speicherbefehle verändern so-
mit den Inhalt der Speicherzelle, aus der
geladen wird, nicht. (Zum „Löschen“ ei-
ner Speicherstelle muß in ihr $00 gespei-
chert werden.)
Die Befehlssequenz LDA $035A STA
$0361 stellt das Maschinenprogramm
dar und muß selbst irgendwo im Spei-
cher abgelegt sein, z. B. ab Adresse
$0300 (Abbildung Ic). Trifft der Mikropro-
zessor auf das Byte $AD in Speicherstel-
le $0300, dekodiert er $AD als LDA-
Befehl und faßt die nachfolgenden
2 Bytes als Adresse auf, die beim 6502
stets „umgedreht“ sind („low byte first“),
also AD 5A 03 statt AD 03 5A.
Nach Ausführen dieses Befehls (soge-
nannter 3-Byte-Befehl: 1 Byte für Be-
fehlscode + 2 Bytes für Adresse) ge-
langt der Mikroprozessor zur Speicher-
stelle $0303, in der sich $8D befindet,
das als STA dekodiert wird. Die nachfol-
genden zwei Bytes werden wiederum als
Adresse interpretiert.
35
a) LDA $035A = Lade Akkumulator
mit Speicherstelle $035A
=|ojojw|m|n|o oje] wjm
035A 035B 035C 035D 035E 035F 0360 0361 0362 0363
Adresse
b) STA $0361 = Speichere Inhalt des
Akkumulators in Speicherstelle $0361
SEEIDEIEIEIEIEIEN
035A 035B 035C 035D 035E 035F 0360 0361 0362 0363
Adresse
c) LDA $035A STA $0361
SESSGGDEDEDL
0300 0301 0302 0303 0304 0305 0306 0307 0308 0309
Adresse
d) LDA $03AD
TIBER"
0300 0301 0302 03AD Adresse
Abbildung 1: Darstellung der 6502 Befehle LDA und STA
Tabelle 3: Einteilung des Quell-Codes.
Feld 1 Feld 2 Feld 3 Feld 4
LABEL OP-CODE OPERAND COMMENT
ORG ‚origin
ADDRESS1 EQU ‚equates
ADDRESS2 EQU ‚equates
START LDA ADDRESS1 ‚loading
STA ADDRESS2 ‚storing
END RTS
36
Trifft der Mikroprozessor z. B. auf die
Byte-Folge AD AD 03 (Abbildung Id), in-
terpretiert er das erste $AD als LDA und
das zweite $AD als Teil der 2-Byte-
Adresse $03AD. Wenn sich in dieser
Speicherstelle nun $BB befindet, so
hängt es vom Sinn des Programms ab,
ob BB als Hexadezimalzahl $BB, als De-
zimalzahl 187, als ASClIl-Zeichen „,;“
oder sonstwie interpretiert wird.
$AD für LDA ist ein sogenannter
Operations-Code (Op-Code), d. h. eine
hexadezimale Zahl, die vom Mikropro-
zessor als ein gültiger Befehl interpre-
tiert wird. „LDA“ selbst in ein sogenann-
tes Befehlskurzwort (Mnemonic). Die Be-
fehlskurzwörter sind standardisiert und
bestehen beim 6502 grundsätzlich aus 3
Buchstaben.
Teil2
6 Assembler und Maschinensprache
Im vorangegangenen Teil wurde noch
nicht genau zwischen Assembler(spra-
che) und Maschinensprache unter-
schieden. Ein Maschinenprogramm
(= ein in Maschinensprache geschrie-
benes Programm) ist eine Folge von he-
xadezimalen Zahlen, z.B. „AD 5A 03 8D
61 03°. Wir erinnern uns, daß dieses he-
xadezimale Kauderwelsch „LDA $035A
STA $0361“ bedeutet. Die hexadezima-
len Werte eines Maschinenprogramms
lassen sich zwar von BASIC aus
„poken“, etwa in der Form
POKE 768, 173: ıEM $AD
POKE 769, 90 : REM $5A
POKE 770,3 : REM $03 usw.,
doch ist diese Prozedur umständlich
und damit für längere Maschinenpro-
gramme nicht zu empfehlen.
Ein Assembler ist ein Hilfsprogramm,
das aus zwei Modulen besteht, dem Edi-
tor und dem Assembler im eigentlichen
Sinn. Der Editor dient zum Erstellen und
Redigieren des Quell-Codes (z. B. „LDA
$035A STA $0361“), der Assembler zur
Umwandlung des Quell-Codes in den
Objekt-Code (z. B. AD 5A 03 8D 61 093).
Assembler sind meist zeilenorientiert
(wie BASIC), wobei jede Befehlszeile des
Quell-Codes in vier Felder eingeteilt ist
(Tabelle 3):
Feld 1: „Labels“ sind Marken oder Na-
men für Adressen, z. B. „ADDRESS1
EQU $035A“ (kann entfallen).
Feld 2: „Mnemonics“ sind leicht ein-
prägbare Befehlskürzel für die Op-
Codes, die beim 6502 regelmäßig aus
Peeker 7/85
Tabelle 4: 6502 Mnemonics nach Funktionen mit den Op-Codes für die Adressierungsarten, der Anzahl der Takte, der
Anzahl der Bytes sowie den beeinflußten Statusflags.
Accu.
ERTL TFEF ESEL I FREE ISFEEE FEST TI IISIPFIETPELIIF RE FILE FINE IE FESTE AT EI FT
BI EIETTL TVIARPIHI TED FBF EP TSET LEI TDT IT FF EEE PET FIT FE ER TEE I FI FETT HH II
ZEIT IE EFEB EAU HET IRIET TI Se FE EREFFTIIEZT THF FEE EFF FEIN IE FT IL FE SF
Ba ET FIT LITT A FI FO Se EFT EN AS SODOOT I PFEIL EEF TEE IIIT ER OOF FT OD O9 7
N Ba BE Ende la EB en u en a nel iern ann adair
a 2.2 zZ EERLFTTEITI TI EBIL EI HE HITE ELITE TI TFT III ZEIT ET ES EEFFT SE ENE N
85° DEE BET a 1a ers 0 LE RRDOFRE A U Dean es
85 MED
285
26 ER
= N
;
85 Brake
20), : 2 ewig are gas lea. 7 re el Te
87 [e 6) (ee)
:&| | - Issesjässejsajesaeses |se - |, Tasse T: 1 | Is
> *
BER ER a ee ee ea
er — eh N
> vr “
BAM a el pa ee. ee er zu
>
NE Be ee eier SB
Ez a
er >
a ee ae a
ee re ee ar er,
#5 ns
a er
a a a ET ER FR
8 INTER ER EIERENE BR.
NuLIioryoi 0| on
Zero,X | Zero,Y | Absol. | Abs,X
Op |ı Cy | Op ı Cy| Opı Cy
LUD) un ınD LU) ınD (de)
ass I I III tie Te 5 Teeinenienime
Bea I EN he je le Taninneinsien
NOxs NIT T< wm nawmın
Bess | | | | 1 | jensal |s je |sulnse
Zero-P
Immedi.
Op | Cy! Op| Cy | Op | Cy
Ag
A2
AO
29
09
49
Function
Load
. ‚Store
Transfer
Stack Ptr
Stack
Status R.
Increment
Decrement
Add/Subt.
Boolean
Shift
Rotate
Miscell
No. of Bytes
*
2 Takte ohne Verzweigung, 3 Takte bei Verzweigung, 4 Takte bei Verzweigung mit Seitenübergang.
1 Takt mehr bei Seitenübergang;
+ =
37.
Peeker 7/85
Beispiele für absolute Adressierung.
LDA $1000 ;lade den Akku mit (dem Byte) der
Speicherstelle $199%
AE AA BB LDX $BBAA ;lade das Index-Register X mit
Speicherstelle $BBAA
AC 00 BO LDY $oddd ;lade das Index-Register Y mit
Speicherstelle $990d
8D 10 98 STA $0019 ;speichere A in Speicherstelle $PW1P
8SE 12 34 STX $3412 ;speichere X in Speicherstelle $3412
SC FF FÖ STY $FÖFF ;speichere Y in Speicherstelle $FFF
Beispiele für Nullseite-Adressierung.
A5 00
LDA $ßd ;lade A mit Speicherstelle $99 (=$P909)
A6 18 LDX $19 ;lade X mit Speicherstelle $1P
A4 FF LDY $FF ;lade Y mit Speicherstelle $FF
85 11 STA $11 ;speichere A in Speicherstelle $11
86 29 STX $2d ;speichere X in Speicherstelle $2P
84 DD STY $DD ;speichere Y in Speicherstelle $DD
Beispiele für unmittelbare Adressierung.
38
A9 00 LDA 4509
A2 AB LDX #$AQd
AB FF LDY #$FF
1999:
1992:
1905:
1997:
109A:
199C:
19PF:
1911:
1012:
1913:
1915:
1917:
1919:
101C:
101F:
1922:
1924:
1926:
1928:
20
20
1
2
3
4
5
6
7
8
9
;lade A mit dem Byte $P@ (löscht A)
‚lade X mit dem Byte $Aß
;lade Y mit dem Byte $FF
#* DEMO: Adressierungsarten
*
en elder ae
“ Fl
NUMBER3
*
F2
EQU
EQU
EQU
EQU
EQU
EQU
LDA
STA
LDY
STY
LDX
STX
F3
$09
NUMBER]
$91
NUMBER2
$92
NUMBER3
+50
ZEROl
ZERO2
ZERO3
NUMBER]
NUMBER2
NUMBER3
ZEROl
ZERO2
ZERO3
;‚F4
‚Ursprung
;Label
‚Label
;Label
‚Label
;Label
‚Label
;Nullseite
‚absolut
;‚Nullseite
‚absolut
;Nullseite
‚absolut
‚unmittelbar
‚übertragen
‚übertragen
;Nullseite
;Nullseite
;Nullseite
‚absolut
‚absolut
‚absolut
‚Nullseite
;‚Nullseite
;Nullseite
drei Buchstaben bestehen (obligato-
risch). Z. B. ist „LDA“ das Mnemonic und
„AD“ der entsprechende hexadezimale
Op-Code für eine der möglichen Adres-
sierungsarten, S. u.
Feld 3: Der „Operand‘“ ist die Adresse
oder Speicherstelle, auf die sich der Be-
fehl bezieht (obligatorisch).
Feld 4: „Comment“ ist ein Kommentar,
der üblicherweise durch ein Semikolon
von den vorangehenden Feldern abge-
grenzt wird (kann entfallen).
Es sind zwei Typen von Labels zu unter-
scheiden:
a) „START“ und „END“ sind z.B. impli-
zite oder interne Labels, die sich auf
Speicherstellen innerhalb des Pro-
gramms selbst beziehen, wobei der As-
sembler die absoluten Adressen dieser
Speicherstellen in Abhängigkeit vom
Programmursprung selbst errechnet.
b) „JADDRESS1“ und „ADDRESS2“
sind z.B. explizite oder externe Labels,
die sich auf Adressen beziehen, die
außerhalb des eigentlichen Programms
liegen. Sie sollten durch EQU-Zeilen zu
Beginn des Programms definiert wer-
den.
Ferner ist der Unterschied zwischen ei-
nem Label und einem Label-Feld zu be-
achten. Wie aus Tabelle 3 ersichtlich,
kann ein Label sowohl in Feld 1 wie Feld
3 vorkommen. Das gleiche Label, z. B.
„ADDRESS1‘“, darf innerhalb desselben
Programms beliebig oft in Feld 3 auftau-
chen, doch darf es nur ein einziges mal
in Feld 1 (= Label-Feld) implizit oder ex-
plizit definiert werden.
Jedes Assemblerprogramm muß mit ei-
ner ORG-Definition des Programmur-
sprungs beginnen und sollte mit dem
Mnemonic RTS (= return from subrouti-
ne) enden.
7 Elementare Adressierungsarten
Tabelle 4 zeigt, daß der 6502 nur 56
Standard-Mnemonics umfaßt. Ein Be-
fehl wie z.B. „LDA“ kann jedoch in ver-
schiedenen Adressierungsformen ver-
wendet werden, so daß die Zahl der Op-
Codes erheblich größer ist. Insgesamt
gibt es 13 Adressierungsarten, von de-
nen die vier einfachsten im folgenden
beschrieben werden.
2.1 Absolute Adressierung
Hier folgt dem Op-Code eine 2-Byte-
Adresse in der bereits bekannten, typi-
schen 6502-Form („low byte first‘).
2.2 Nullseite-Adressierung
Die ersten 256 Bytes des Speichers
($0000 — $O0OFF) werden, wie ebenfalls
Peeker 7/85
bereits bekannt, Nullseite oder Zero-
Page genannt. Bei der Nullseite-
Adressierung ist das höherwertige Byte
stets $00, d. h. anstelle von $0000 oder
$00FF (00000 oder 00255) kann $00 oder
$FF (0 oder 255) stehen. Die Nullseite-
Adressierung verwendet deshalb immer
1-Byte-Adressen.
2.3 Unmittelbare Adressierung
Die unmittelbare (immediate) Adressie-
rung bezieht sich auf dasjenige Byte,
das unmittelbar dem Op-Code folgt,
28:
1000: A9 11 LDA #$11
Angenommen, die Speicherstelle $1000
enthalte $A9 und die Speicherstelle
$1001 enthalte $11. „A9Y“ als Op-Code
besagt, daß der Akkumulator mit dem
Byte zu laden ist, das unmittelbar auf
„Ag“ folgt, also mit „11“. Die unmittelba-
re Adressierung wird im Quell-Code
durch das vorangestellte Nummernzei-
chen (Doppelkreuz) gekennzeichnet.
2.4 Implizierte Adressierung
Die implizierte (implied) Adressierung
bezieht sich auf überhaupt keine Adres-
se im Speicher, sondern z. B. auf die Re-
gister selbst. Wird etwa der Inhalt des
Akkumulators in das Index Register X
übertragen, werden keinerlei Speicher-
stellen berührt.
Beispiele für implizierte Adressierung.
transfers Ato X
transfers Xto A
transfers A to Y
transfers Yto A
Enthält z.B. A $FF, bewirkt der Befehl
TAX, daß $FF nach X übertragen wird.
Nach Ausführung von TAX befindet sich
der Wert $FF sowohl in A wie auch in X.
Es sei darauf hingewiesen, daß Befehle
der Art TXY oder TYX nicht zu dem 6502-
Befehlssatz gehören.
Der Befehl
60 RTS
ist ein weiteres Beispiel der implizierten
Adressierung, die dem BASIC-Befehl RE-
TURN oder END entspricht.
Nebenstehende „Demo“ faßt die bespro-
chenen Adressierungsarten in einem Ge-
samtbeispiel zusammen.
‚return from subroutine
8 Tabelle 4: 6502 Mnemonics ...
Die Verwendung dieser Tabelle sei am
Beispiel des LDA-Befehls bei der absolu-
ten Adressierung erläutert. In der Spalte
Peeker 7/85
„Absol.“ ist „AD“ als Op-Code für das
Mnemonic „LDA“ zu finden. Rechts von
„AD“ steht die Zahl „4“, die besagt, daß
dieser Befehl 4 Mikroprozessor-Takte er-
fordert. Der 1 MHz 6502 Mikroprozessor
schafft 1 Million Takte pro Sekunde, d.h.
1 Takt benötigt 1 us. Anders formuliert,
läßt sich etwa der Befehl LDA $1000
theoretisch 250.000mal pro Sekunde
ausführen.
In der letzten Zeile der Tabelle (No. of
Bytes) ist in Spalte „Absol.‘“ vermerkt,
daß dieser Befehl 3 Bytes im Speicher
benötigt (1 Byte für den Op-Code und 2
Bytes für die Adresse).
Teil 3
9 Interne und externe Labels
Im vorangehenden Abschnitt wurde be-
halb desselben bezieht. Externe Labels
werden üblicherweise durch EQU-Glei-
chungen am Anfang des Assemblerpro-
gramms als absolute Adressen definiert,
während die tatsächlichen Adressen in-
terner Labels vom Programmursprung
(ORG) abhängen. Interne Labels spielen
eine große Rolle bei bedingten Verzwei-
gungen.
ORG $1000
EXTLBL EQU $2000
LDA EXTLBL
CMP #%$00 ;siehe unten
BEQ INTLBL;siehe unten
LDA * $00
INTLBL RTS
10 Vergleiche und bedingte
Verzweigungen
Für jedes Register A, X und Y gibt es je
einen Vergleichsbefehl für die verschie-
denen Adressierungsarten:
reits zwischen internen und externen La- EN : HR he f a e h
bels unterschieden. Zur Rekapitulation: L wi era ST egal
Ein externes Label bezieht sich auf eine er
Speicherstelle außerhalb des Assem- CPX #$FF; vergleicht X mit $FF
blerprogramms, während sich ein inter--r CPX $1000; vergleicht X mit Speicher-
nes Label auf eine Speicherstelle inner- stelle $1000
1 ORG $1999 Demo 1
2 Er
3 “ Indizierte Adressierung
4 *
1pp9: A9 29 5 START LDA +$29
1062: 8D PB 20 6 STA $2990
1005: A9 39 7 LDA +#$39
1007: 8D 90 30 8 STA $39909
10BA: A2 99 9 LDX #99
1B9C: AB OB 19 LDY #99
1B0E: BD BB 28 11 LDA $2009,x
1811: 9D BB AB 12 STA $4009,X ;Ad09: 20
1014: BI BB 39 13 LDA $3999,Y
1017: 99 90 59 14 STA $5999,Y ‚5009 :39
15 *
16 # Inkrement und Dekrement
17 »
1ß1A: EE 0 48 18 INC $4999 ‚A009: 21
1d1D: CE BB 58 19 DEC $5999 ‚5000:2F
1020: BD OB 48 29 LDA $4999,x
1023: E8 21 INX
1624: 9D PB AB 22 STA $4999,X ;A001:21
1027: B9 00 50 23 LDA $5909,Y
102A: C8 24 INY
102B: 99 00 50 25 ı STA $5909,Y ;5001:2F
26 [2
27 «+ Übertrag (Wrap-around)
28 *
102E: A2 FF 29 LDX 4#$FF
1039: EB 39 INX :X:09
1031: Ad 90 31 LDY +$99
1033: 88 32 DEY ;Y:FF
33 =
34 * vergleichen und verzweigen
35 ”
1034: BD PB 50 36 LDA $5999,x
1037: C9 39 37 CMP_ +$39
1039: FB 92 38 BEQ EQUAL
1P3B: DB 3 39 BNE NOTEQUAL
1P3D: A9 99 48 EQUAL LDA +#$99
103F: 69 al RTS
1040: A9 91 42 NOTEQUAL LDA +$01
1042: 69 43 RTS
39
CPY # $FF; vergleicht Y mit $FF
CPY $1000;
stelle $1000
Auf Vergleiche folgt üblicherweise ein
bedingter Verzweigungsbefehl, z.B. BEQ
(= branch on equal = verzweige, falls
gleich) oder BNE (= branch on not equal
= verzweige, falls ungleich), die nachfol- .
gend beschrieben werden.
EXAMPLE1 ORG
EXTLBL EQU
LDA
CMP
BEQ
LDA
RTS
LDA
RTS
$1000
$2000
EXTLBL
# $FF
EXIT2
EXIT1 # $01 ;NOT EQUAL
EXIT2 # $00 ;EQUAL
In EXAMPLE1 wird A mit dem Byte der
Speicherstelle EXTLBL geladen, an-
schließend wird A mit $FF verglichen.
Falls EXTLBL $FF enthält, wird nach
EXIT2 verzweigt. Andernfalls fährt das
Demo 2 1
2
3
4
5
5
7
8
9
19
11
1009: A2 99 12
1062: A9 99 13
1004: 9D 90 20 14
1007: E8 15
1008: EB 90 16
1004: DB FB 17
18
19
29
21
1d0C: A2 90 22
1B0E: BA 23
1pßF: 9D BB 28 24
1912: E8 25
1813: DO FA 26
27
28
29
1015: A9 99 39
1817: A2 FF 31
1819: 9D 96 28 32
1B1C: CA 33
181D: EB FF 34
1d1F: DB FB 35
36
37
38
39
1821: A9 99 40
1023: AA 41
1024: 9D 00 20 42
1027: CA 43
1028: D® FA 44
102A: 69 45
40
vergleicht Y mit Speicher-
Programm mit EXIT1 fort. Die Befehlsfol-
ge „LDA EXTLBL CMP #$FF BEQ
EXIT2“ entspricht dem folgenden
BASIC-Programm:
10 A = PEEK (8192)
20 IFA = 255 THEN GOTO 40
30 PRINT „EXIT1“ : END
40 PRINT „EXIT2“ : END
EXAMPLE2 ORG $1000
EXTLBLI EQU $2000
EXTLBL2 EQU $3000
LDX EXTLBL{
CPX EXTLBL2
BNE EXIT2
EXIT1 LDA #$00
RTS
EXIT2 LDA #$01
RTS
Beim EXAMPLE2 wird EXTLBL1 mit
EXTLBL2 verglichen, wobei hier eine
Verzweigung nur dann erfolgt, falls
EXTLBL1 ungleich EXTLBL2 ist.
Der 6502 läßt auch eine Verzweigung oh-
ORG $1998
=
* DEMO 2: $2000-$2ßFF löschen
*
*# LOOP1/LOOP2 —- Vorwärtsschleifen
# LOOP3/LOOP4 — Rückwärtsschleifen
*
ADDRESS EQU $2999
EZ
* LOOP1l löscht $2900-$29FF
*
+$09
+$09
ADDRESS, X
LDX
LDA
STA
INX
CPX
BNE
LOOP1
+$09
LOOP1
*
« LOOP2 löscht $2990-$29FF
# (etwas schneller als LOOPI)
=
LDX
TXA
STA
INX
BNE
+$09
LOOP2 ADDRESS, X
LOOP2
E 3
* LOOP3 löscht $2999-$20FF
E
LDA
LDX
STA
DEX
CPX
BNE
+$09
+$FF
LOOP3 ADDRESS, X
#$FF
LOOP3
=
* LOOP4 löscht $2998-$29FF
« (etwas schneller als LOOP3)
»
LDA
TAX
STA
DEX
BNE
RTS
4509
LOOP4 ADDRESS, X
LOOP4
ne vorausgehenden Vergleich zu. In die-
sem Fali bedeutet BEQ = verzweige,
falls das zuletzt angesprochene Regi-
ster gleich Null, und BNE = verzweige,
falls das Register ungleich Null ist.
oder LDY $2000
BNE LABEL2
LDY $2000
BEQ LABEL1
11 Inkrementieren und Dekremen-
tieren
Speicherstellen und Register können in-
krementiert (um 1 erhöht) und dekremen-
tiert (um 1 vermindert) werden. Ange-
nommen, der Wert von X sei $10, dann
würde der Befehl INX (= inkrementiere
X) X von $10 auf $11 erhöhen. Im einzel-
nen gibt es folgende Inkrement-Dekre-
ment-Befehle:
INC $2000; erhöht Speicherstelle $2000
um 1
DEC $2000; vermindert Speicherstelle
$2000 um 1
INX; erhöht X um 1
DEX; vermindert X um 1
INY; erhöht Y um 1
DEY; vermindert Y um 1
Die Befehle „INA“ (inkrementiere A) und
„DEA“ (dekrementiere A) existieren nicht
und müssen bei Bedarf simuliert wer-
den:
TAY oder TAY
INY DEY
TYA TYA
Was geschieht nun, wenn z.B. Y $FF ent-
hält und inkrementiert oder Y $00 enthält
und dekrementiert wird?
LDY #$FF
INY Y.=00
LDY #$00
DEY ‚Y=FF
Im ersten Fall nimmt Y den Wert $00, im
zweiten $FF an (Überlauf, ,„Wrap-
around‘).
12 Absolutes, indiziertes Laden und
Speichern
Absolute, indizierte Adresse bedeutet:
Tatsächliche Adresse = absolute
Adresse + Wert des jeweiligen Indexre-
gisters (X oder Y). Beim EXAMPLE1 ist
die absolute Adresse EXTLBL = $2000
und der Wert von X = $05, LDA
EXTLBL,X entspricht mithin LDA $2005.
Bei EXAMPLE2 hat Y den Wert $00, LDA
EXTLBL,Y ist also gleichbedeutend mit
LDA $2000 (Spezialfall). Mit der absolu-
ten, indizierten Adressierung kann ein
Speicherbereich von $100 oder 256
Bytes (= Page = Seite) angesprochen
werden.
Peeker 7/85
EXAMPLE1 ORG $1000
EXTLBL EQU $2000
LDX # $05
LDA EXTLBL,X
RTS
EXAMPLE2 ORG $1000
EXTLBL EQU $2000
LDY # $00
LDA EXTLBL,Y
RTS
13 Schleifen
Assemblerschleifen entsprechen weit-
gehend den FOR-NEXT-Schleifen in BA-
SIC. Angenommen, man wollte den Spei-
cherbereich $0300 — $%0302 (dezimal
768-770) nach $0303—-$0305 (dezimal
771-773) verschieben (= duplizieren),
würde dies in BASIC so aussehen:
FORX = 0 TO 3: POKE 771 + X, PEEK
(768 + X): NEXT X
In Assembler wäre folgendes Programm
zu. schreiben:
ORG $1000
EXTLBL1 EQU $0300
EXTLBL2 EQU $0303
INITLP LDX #800
LOOP LDA EXTLBL1,X
STA EXTLBL2,X
INCR INX
CPX # $03
BNE LOOP
EXIT RTS
0300 0301 0302 0303 0304 0305 vor-
FF- FF FF 00 00.00 .: her
0300 0301 0302 0303 0304 0305 nach
FF FF OFF OFFOFFOFF her
Zum besseren Verständnis des Pro-
grammflusses, wollen wir die Schleifen
Schritt für Schritt untersuchen:
LOOP 0: Bei INITLP wird das X-Register
initialisiert (X = 0).
LOOP 1: Im ersten Schleifendurchgang
ist X = 0, mithin EXTLBL1,X = $0300
und EXTLBL2,X = $0303. Bei INCR wird
Xum1(0 + 1 = 1) erhöht und mit 3 ver-
glichen. Da X noch ungleich 3 ist, wird
die BNE-Verzweigung nach LOOP aus-
geführt.
LOOP 2: Im zweiten Durchgang ent-
spricht X = 1 und damit EXTLBL1,X =
$0301 bzw. EXTLBL2,X = $0304. X wird
wiederum um 1 auf jetzt 2 erhöht, ist je-
doch weiterhin ungleich 3, so daß erneut
die BNE-Verzweigung nach LOOP er-
folgt.
Peeker 7/85
LOOP 3: Im dritten und letzten Durch-
gang gilt X = 2, also EXTLBL1,X =
$0302 und EXTLBL2,X = $0305. X wird
wiederum um 1 auf jetzt 3 erhöht und mit
3 verglichen. DaX = 3 ist, findet die
BNE-Verzweigung jetzt nicht mehr statt
und das Programm endet mit RTS.
Demo 1 faßt die neuen Befehle in leicht-
verständlicher Weise zusammen, wäh-
rend Demo 2 als praktisches Beispiel
zeigt, wie man einen Speicherbereich
von 256 Bytes löscht, d.h. auf Null setzt.
Teil 4
Im letzten Abschnitt haben wir nur die
Vergleiche „gleich“ und „ungleich“ be-
sprochen. Insgesamt sind folgende Ver-
gleiche möglich: |
nr M BEQ JA
A<>M BNE JA
A< M BCC JA
A>=M BCS JA
A> M BEQ NEIN
BCS JA
ASe M BCC JA
BEQ JA
A steht für Akkumulator (und ersatzwei-
se für die beiden anderen X- und Y-
Register). M steht für Memory, d. h. Spei-
cherstelle oder Vergleichswert.
Aus der Übersicht sind zwei neue Befeh-
le ersichtlich, nämlich BCC und BCS.
BCC bedeutet eigentlich Branch on car-
ry clear (verzweige, falls Überlauf-Flag
= 0, d. h. gelöscht oder zurückgesetzt
ist) und BCS ist die Abkürzung für
Branch on carry set (verzweige, falls
Überlauf-Flag = 1, d. h. gesetzt ist). Da
BCC sachlich für „verzweige, falls klei-
ner‘ steht, verwendet man auch oft das
Mnemonic BLT (Branch on lower than).
Umgekehrt steht BCS sachlich für ‚„ver-
zweige, falls größer oder gleich‘, so daß
sich hierfür das nicht-standardisierte
Mnemonic BGE (branch on greater or
equal) eingebürgert hat. Befehle in der
Art „verzweige, falls größer‘ und „ver-
zweige, falls kleiner oder gleich‘ gehö-
ren nicht zum 6502-Befehlssatz und
müssen deshalb durch Doppelinstruktio-
nen simuliert werden.
Für die praktische Programmierarbeit ist
es nach meinen Erfahrungen für den As-
sembleranfänger besser, wenn er über
die sogenannten Status-Flags über-
haupt nicht nachdenkt, sondern statt
dessen mit der obigen Vergleichstabelle
arbeitet. Für die Theoretiker sei jedoch
nachfolgend die Funktionsweise des
Carry-Flags bei BCC und BCS erläutert:
T; 2. 3:
A 10 09 10
M —09 —10 —-10
+01 —01 +00
C=+ Der C=+
Get G=0 Ge’
Von den obigen drei Subtraktionen
(10—9, 9-10 und 10— 110) führt die zwei-
te zu einem Überlauf bzw. zu einem Vor-
zeichenwechsel. Nehmen wir nunmehr
an, daß der 6502-Prozessor bei jedem
Vergleich intern eine Subtraktion von A
und M vornimmt und das Überlauf-Flag
entsprechend setzt, und zwar dergestalt,
daß bei einem Vorzeichenwechsel C auf
‘0 und bei keinem Vorzeichenwechsel C
auf 1 gesetzt wird. Dann wird deutlich,
weshalb bei den nachfolgenden Beispie-
len ein Sprung zu den Labels JA bzw.
NEIN erfolgt: |
A<M? A>=M?
LDA # 10 LDA # 10 ;A
CMP # 09 CMP # 09 ;M
BCC NEIN BCS JA
LDA #09 LDA #09
CMP #10 CMP # 10
BOCOCJA BCS NEIN
LDA #10 LDA #10
CMP #10 CMP # 10
BCC NEIN BCS JA
Genau genommen sind die Erläuterun-
gen zu den Subtraktionen zwar praktisch
richtig, jedoch theoretisch falsch, weil
eigentlich das A vom M subtrahiert und
bei 6502-Subtraktionen mit „invertiertem
Borgen‘“ gearbeitet wird, wodurch die
„normalen‘‘ Subtraktionsregeln quasi
auf den Kopf gestellt werden. Hierzu
schreibt LAncE A. LEVENTHAL in „6502 As-
sembly Language Subroutines“, Berke-
ley 1982, S. 2: „The Carry Flag actsasan
inverted borrow in subtraction. A Com-
pare instruction clears the Carry if the
operation requires a borrow and sets it if
it does not. Thus the Carry has the oppo-
site meaning after comparison on the
6502 than it has on most other compu-
ters.“
Da wir gerade bei der Theorie sind, soll
kurz auf eine andere Tatsache aufmerk-
sam gemacht werden, die ebenfalls in
der Programmierpraxis weitgehend ig-
noriert werden kann. Betrachten wir zu
diesem Zweck den folgenden Pro-
grammauszug:
41
1 ORG $300
2 *
3 * Man beachte bei diesem
4 * Test die auf BEQ folgende
5 * hexadezimale Sprungadresse
6 %*
2300: A8 7 L1 TAY
0301: FO FD 8 BEQ L1l
\ 9 *
0303: FO FF 10 L2 BEO L2+1
11 e
2305: F@ FE 12 53 BEQ L3
43 R
2307: F® 00 14 BEQ L4
0309: A8 25 L4 TAY
16 *
B3Q0A: FO 08l L7 BEQO L5
B30C: A8 18. TAY
B30D: A8 19 L5 TAY
20 *
B30E: FO 22 21 BEQ L6
0831@: AB 22 TAY
e3ll: AB 23 TAY
8312: A8 24 L6 TAY
0313: 6® 25 RTS
1 ORG $1009
2 * |
3 * Vergleich-Demo
4 *
5 * Welche Stelle muß geändert
6 * werden, damit das Programm
7 * bei Branch4 ankommt?
8 *
10080: A9 AQ 9 LDA #SA0
10802: C9 BQ 18 CMP #5SB®
1004: 908 03 11 BCC DBRANCHl
1006: A9 01 12 LDA #1
1008: 69 33 RTS
10089: C9 BO 14 BRANCHl CMP #5SBP®
180B: B® 093 15 BCS BRANCH2
1B0D: A9 92 16 LDA #2
1B0F: 69 17 RTS
1810: C9 AB 18 BRANCH2 CMP #SA9
1812: F@ 093 19 BEQ DBRANCH3
1814: A9 93 20 LDA #3
18016: 69 21 RTS
1817: C9 B® 22 BRANCH3 CMP #5SB0®
1819: D® 03 23 BNE PBRANCH4
181B: A9 094 24 LDA #4
1801D: 68 25 RTS
101E: A9 95 26 BRANCH4 LDA #5
1020: 69 27 RTS
42
030A: F001 LABEL1I BEQLABEL2
030C: A8 TAY
030D: AA LABEL2 TAX
„FO“ ist der Op-Code für BEQ und „A8“
bzw. „AA“ sind die Op-Codes für TAY
bzw. TAX. Nach „FO“ steht merkwürdi-
gerweise die hexadezimale Zahl „01“.
Welche Bedeutung hat sie? Dem Quell-
Code ist zu entnehmen, daß ein relativer
Vorwärtssprung zum LABEL2 erfolgt.
„FO 01“ bilden als zusammengehörige
Byte-Folge den Befehl BEQ LABEIL2.
Würde dieser Sprung nicht ausgeführt,
weil die Bedingung A = M nicht erfüllt
ist, dann würde der prozessorinterne
Programmzähler nunmehr an der Spei-
cherstelle $030C angelangt sein. Addie-
ren wir $030C + $01, dann erreichen wir
die Speicherstelle $030D, also die Stelle
von LABEL2. Mithin können wir festhal-
ten, daß nach dem Vergleichs-Op-Code
eine hexadezimale Zahl steht, die die An-
zahl der Bytes angibt, um die der Pro-
grammzähler versetzt werden muß, da-
mit der BEQ-Sprung an der gewünschten
Speicherstelle anlangt. Dieses „Verset-
zen“ wird als Offset bezeichnet.
Was passiert jedoch, wenn kein
Vorwärts-, sondern ein Rückwärtssprung
stattfinden soll. Betrachten wir hierzu
das nachfolgende Beispiel:
0300: A8 LABEL1 TAY
0301: FOFD LABEL2 BEQLABELI
0303: AA TAX
Würde die A = M Bedingung hier nicht
erfüllt, dann würde wiederum der näch-
ste Befehl der Speicherstelle $0303 ab-
gearbeitet, nämlich TAX. Was geschieht
jedoch, wenn A = M ist. Dann muß ein
Rückwärtssprung nach LABEL2 erfol-
gen. Wenn man mit dem Zählen ab der
Speicherstelle $0303 beginnt, gelangt
man durch „Bis-drei-Zählen“ zur Spei-
cherstelle $0300. Mithin müßte theore-
tisch in der Speicherstelle $0302 „03“
stehen. „03“ würde jedoch +3 bedeu-
ten, während hier „FD“ —3 bedeutet.
Fassen wir zusammen: Bei relativen
Sprüngen steht nach dem Op-Code für
BEQ, BNE, BCC und BCS eine entweder
positive oder negative hexadezimale
Offset-Zahl, um die der Programmzähler
ab der der Offset-Zahl folgenden Spei-
cherstelle vorwärts oder rückwärts zum
Sprung-Label versetzt werden muß. He-
xadezimale Zahlen im Bereich $00—$7F
werden als positiv und sinngemäß hexa-
dezimale Zahlen im Bereich $80—-$FF
als negativ angesehen, und zwar einzig
und allein bei den Vergleichsbefehlen:
Peeker 7/85
80 — 128
ED
ER:
4
0 0
er
2 2
8 3
DE
IF 127
Aus der Kurztabelle ist ersichtlich, daß
relative Sprünge nur bis 127 Bytes vom
Offset-Ursprung entfernt sein dürfen.
Diese Beschränkung macht es oft erfor-
derlich, daß man die Programmlogik um-
drehen muß, da Vorwärtssprünge über
127 und Rückwärtssprünge über 128
Speicherstellen hinaus vom Assembler
als „Bad Branch“ zurückgewiesen wür-
den. Dies geschieht durch die Verwen-
dung des absoluten Sprungs JMP, der
im nächsten Kapitel beschrieben wird.
Im übrigen kann man den Offset igno-
rieren, da dieser vom Assembler stets
automatisch ausgerechnet wird.
Teil 5
In den bisherigen Abschnitten haben
wir bereits etwa die Hälfte der 6502-Be-
fehle besprochen, nämlich Lade- und
Speicherbefehle (LDA, LDX, LDY; STA,
STX, STY), Übertragungsbefehle (TAX,
TAY, TXA, TYA), Vergleichsbefehle
(CMP, CPX, CPY), bedingte Verzwei-
gungsbefehle (BEQ, BNE, BCC, BCS),
Inkrementier- (INC, INX, INY) und De-
krementierbefehle (DEC, DEX, DEY).
Ferner wurden die meisten Adressie-
rungsarten behandelt, und zwar absolu-
te Adressierung (LDA $1000), Nullseite-
Adressierung (LDA $00), indizierte abso-
Iute Adressierung (LDA $1000,X oder
LDA $1000,Y), implizite Adressierung
(TAY, TXA usw.) sowie die noch nicht ex-
pressis verbis benannte relative Adres-
sierung. Letzere ist die Adressierungs-
art bei allen bedingten Verzweigungsbe-
fehlen (BEQ, BCC usw.).
Trotzdem waren wir bislang nicht in der
Lage, „sinnvolle“ Programme zu erstel-
len, weil einige der mächtigeren Befehle
Peeker 7/85
noch nicht besprochen wurden. Eine
sehr wichtige Gruppe von Befehlen be-
trifft den sogenannten Stack, auch als
Stapel oder „Keller“ bezeichnet. Hierzu
betrachten wir das nachfolgende erwei-
terte Modell des 6502-Prozessors:
Im ersten Schritt wird der Programmzäh-
ler mit der Adresse $1000 geladen. Dann
holt sich der Prozessor den Op-Code 4C
= JMP, lädt den Programmzähler mit
der darauffolgenden Adresse $2000 und
springt zu $2000. Dort holt sich der Pro-
Die jeweils 1 Byte großen Indexregister
X und Y sowie der Akkumulator als all-
gemeines Datenregister sind bereits
bekannt. Der Programmzähler ist ein
2 Bytes umfassendes Register und ent-
hält die Adresse der Speicherstelle des
jeweils als nächstes vom Prozessor zu
bearbeitenden Befehls. Beispiel:
1000: AD 00 20 LDA $2000
1003: 8D 00 30 STA $3000
Nehmen wir an, der Prozessor sei be-
reits bei Speicherstelle $1000 ange-
langt. Dann enthält der Programmzähler
die Adresse LL- HH, Low Byte — High
Byte, 00-10 = $1000, d.h. der Prozes-
sor ist auf die Adresse des Op-Codes AD
= LDA gerichtet. Dieser Befehl wird in
Verbindung mit den darauffolgenden 2
Adreßbytes interpretiert und dann ent-
sprechend ausgeführt. Anschließend
wird der Programmzähler auf Speicher-
stelle $1003 erhöht. Bei bedingten (rela-
tiven) Verzweigungen wird er mit der re-
lativen Adresse geladen, während er bei
unbedingten (absoluten) Verzweigun-
gen mit der absoluten Adresse der Spei-
cherstelle, zu der der Sprung erfolgen
soll, geladen wird. Es gibt zwei Arten von
absoluten Verzweigungen oder Sprün-
gen: Ä
JMP = Jump (entspricht GOTO in
BASIC)
JSR = Jump Subroutine (entspricht
GOSUB in BASIC)
RTS = Return from Subroutine
(entspricht RETURN in BASIC)
RTS = entspricht als letztes RTS
eines Assemblerprogramms
END in BASIC
Betrachten wir zunächst folgendes Pro-
gramm:
1000: 4C 00 20
1003: 60
JMP $2000
RTS
2000: 4C 03 10 JMP $1003
6502
X-Register A-Register Y-Register Stapelzeiger Programmzähler
zessor den Op-Code 4C, lädt den Pro-
grammzähler mit der nachfolgenden
Adresse $1003 und springt zu $1003.
Hier steht nun RTS, das als letzter Op-
Code das Assemblerprogramm been-
det.
Was geschieht aber mit dem Programm-
zähler, wenn statt eines JMP ein JSR ge-
_ wünscht wird. Sehen wir dazu JSR-Bei-
spiel 1 an:
JSR-Beispiel 1
1000: 20 00 20
1003: 60
JSR $2000
RTS
2000: 60
RTS
JSR-Beispiel 2
OFFE: A2 FF LDX + $FF
OFFF: 9A IX...
1000: 20 00 20 JSR .$2000
RTS
1003: 60
2000:
A9 AA LDA #$AA
2002: 48 PHA
2003: 68 PLA
2004: RTS
Zunächst wird der Programmzähler mit
$1000 geladen. Dann holt sich der Pro-
zessor den Op-Code 20 = JSR und lädt
den Programmzähler mit der Adresse
$2000, zu der gesprungen werden soll.
Da der Programmzähler jedoch nur je-
weils eine einzige Adresse enthalten
kann, erhebt sich die Frage, wie sich der
Prozessor „merken“ kann, daß er nach
RTS = RETURN bei Adresse $2000 wie-
der zu derjenigen Adresse zurückfindet,
die auf den Befehl JSR $2000 folgt. Zu
diesem Zweck unterhält der Prozessor
einen 256 Bytes umfassenden Stapel,
der bei allen 6502-Mikrocomputern den
Speicherbereich $0100 bis $O1FF ein-
nimmt. Dieser Stapel wird rückwärts,
d.h. ab $OIFF, mit den RTS-Rücksprung-
adressen gefüllt. Neben dem Stapel gibt
43
Beispiel
1 ÖRG $1000 1056: 20 DA FD 79 JSR HEXOUT
2 * 1059: 20 864 10 80 JSR KOMMA
3 * Addition und Subtraktion 81 >
4 % Semzmsmsasaas2os2222222=S= : 82 * Verschiedene fehlerhafte
ee) * 83 * Additionen und Subtraktionen
6 * HEXOUT zeigt Wert im A-Register 84 *
7 * als hexadezimale Zahl an. 85 * Nach SEC 3 + 1 = 5! hex $05
8 * HEXOUT ändert nur das A-Register 8% .
9 * 105C: 38 87 SEC
10 * CHROUT zeigt Character in 105D: AP 03 88 LDA #3
11 * A-Register als ASCII-Zeichen an. 105F: 69 01 89 ADC #1
i2 * CHROUT läßt alle drei Register 1051: 20 DA FD 90 JSR HEXOUT
13 * A, X und Y unverändert. 1064: 20 86 10 91 JSR KOMMA
14. % j FR
15 * Beides sind ROM-Firmware-Routinen 93 # NEE ELLE: 3». ® 1 hex $01
16 * des Apple 11c/lle/lI Plus 94 *
17 * 1067: 18 95 CLC
18 HEXOUT EQU $FDDA ‚Apple 1068: A9 03 96 LDA #3
19 CHAROUT EQU %$FDED ‚Apple 106A: EP 01 97 SsBbt #1
20 %* 105C: 20 DA FD 98 JSR HEXOUT
21 * 8-Bit-Addition ohne überlauf 10#4F: 20 86 10 99 JSR KOMMA
22 * 100 *
23 *10 + 10 = 20 hex #14 101 * überlauf 255 + 1 = 0! hex $00
24 * 102 *
23 CLC . 1072: 18 103 ELE
26 LDA #10 1073: AP FF 104 LDA #255
27 ADC #10 1075: 69 01 105 ADC #1
28 JSR HEXOUT ».1077: 20 DA FD 10% JSR HEXOUT
29 JSR KOMMA 107A: 20 864 10 107 JSR KOMMA
30 * 109 %
31 * 8-Bit-Subtraktion ohne "Unterlauf" 110 * "Unterlauf" 0 - 1 = 255! hex $FF
32 * 111.8
33 "10 +90 QO hex $00 107D: 38 Ya; SEC
34 * 107E: A9 00 113 LDA #0
35 SEC 1080: EP 01 114 SsBCt #1
36 LDA #10 1082: 20 DA FD 115 JSR HEXOUT
37 SBC #10 1085: 60 116 RTS
38 JSR HEXOUT 3
39 JSR KOMMA 118 %* Unterroutine zum Änzeigen
40 * 119 * eines Kommas
41 * 14-Bit-Addition mit überlauf- 120 *
42 * prüfung. 1086: A9 AC 121 KOMMA LDA #","
43 . 1088: 20 ED FD 122 JSR CHAROUT
4 * 34044 + $3033 = #$7077 108B: 40 123 RTS
45 * ia %
46 CLC i25 * Unterroutine zum Anzeigen
47 LDA #+44 ‚Low 126 * des Wortes "Error:"
48 ADC #$33 ‚Low 127 %*
49 STA LL 108C: A2 00 128 ERROR LDX #0
0 LDA #%40 ‚High 129 2%
51 ADC #$30 ;High 130 %* 6-stelliges Wort "Error:"
32 STA HH uch ee
53 BCC OKAY 108E: BD 9C 10 132 ERRORI LDA ERRWORT ‚X
55 JSR ERROR 1091: 20 ED FD 133 JSR CHAROUT
3% DKAYi LDA HH ‚High 1094: EB 134 INX
37 JSR HEXOUT 1095: EO 06 135 CPX #4
58 LDA LL ‚Low 1097: DO FS5 136 BNE ERRORI
59 JSR HEXOUT 1099: &0 137 RTS
60 JSR KOMMA 138 *
6i . 139 * Der Pseudo-Opcode HEX
62 * 16-Bit-Subtraktion mit 140 * reserviert eine Speicherstelle
63 * "Unterlauf"-Prüfung 141 * mit einem Hexwert.
64 * 142 * Der Pseudo-Opcode ASC
65 * $4044 - $3033 = $1011 143 * reserviert einen Speicherraum
66 * 144 * mit einem String.
67 SEC nr GE
68 LDA #44 ‚Low 109A: 00 146 LL HEX 00
69 SBC #$33 ‚Low 109B: 00 147 HH HEX 00
70 STA LL 109C: C5 F2 F2 148 ERRWORT ASC "Error:"
7 LDA #%$40 ‚High 109F: EF F2 BA
?2 SBC #%30 ‘High
73 STA HH
74 BCS DOKAY2 --End assembly--
753 JSR ERROR
76 OKAY2 LDA HH ‚High 162 bytes
77 JSR HEXOUT
78 LDA LL ‚Low Errors: 0
Symbol table - alphabetical order:
CHAROUT =$FDED ERROR =$108C ERRORi =$108E ERRWORT =$109C
HEXOUT =$FDDA HH =$109B KOMMA =$1086 LL =$109A
OKAY1 =$102A OKAY2 =$104D
Symbol table - numerical order:
OKAY =$102A OKAY2 =$104D KOMMA =$1086 ERROR =$108C
ERRORI =$108E LL =$109A HH =$109B ERRWORT =$109C
HEXOUT =$FDDA CHAROUT =$FDED
44 Peeker 7/85
100 : >... 1F8 -1F9 IFA: EB: 1FG FD .IEE FE Be
es den Stapelzeiger, der als eine Art
X-Register aufgefaßt werden kann und
der beim Einschalten des Mikrocompu-
ters oder beim Reinitialisieren des Pro-
zessors in der Regel auf $FF ($0100,X)
gesetzt wird.
Nehmen wir an, der Mikrocomputer sei
gerade eingeschaltet worden, der Stack
sei noch leer und der Stapelzeiger sei
auf $FF initialisiert. Ferner sei der Pro-
grammzähler auf $1000 eingestellt, wo
der Befehl JSR $2000 stehen soll. Wie
bereits bekannt, wird der Programmzäh-
ler mit der Adresse $2000 geladen.
Gleichzeitig wird die Rücksprungadres-
se auf den Stapel geschoben (to push on
stack), und zwar nicht die eigentliche
Adresse $1003, sondern $1003 — $01 =
$1002. High Byte $10 wird in $O1FF und
Low Byte $02 in $O1FE im Stapel zwi-
schengespeichert. Vor jeder Zwischen-
speicherung wird der Stapelzeiger um 1
vermindert und erst danach das HH-
oder LL-Byte auf den Stack geschoben.
Der Prozessor führt also quasi intern ein
Programm aus, das wir wie folgt simulie-
ren können:
DEX ‚decrement
LDA #$10 ;push
STA $0100,X
DEX ‚decrement
LDA #3$02 ‚push
STA $0100,X
Wenn der Prozessor nunmehr bei Spei-
cherstelle $2000 auf RTS stößt, zieht er
die Rücksprungadresse vom Stapel, er-
höht sie um $01 und überträgt sie in den
Programmzähler. Beachten Sie folgen-
den Merksatz:
Decrement before pushing!
Increment before pulling!
Neben JSR gibt es noch andere 6502-Be-
fehle, die den Stapel sowie den Stapel-
zeiger beeinflussen.
PHA (= Push accumulator on stack) de-
krementiert den Stapelzeiger und
Peeker 7/85
Beispiel 1
Initialisierung
JSR $2000
RTS
Beispiel 2
LDX #$FF
TXS
JSR $2000
LDA #$AA
PHA
PLA
RTS
schiebt den Inhalt des Akkumulators
auf den Stack.
PLA (= Pull accumulator from stack) in-
krementiert den Stapelzeiger, zieht den
Inhalt der entsprechenden Stapelspei-
cherstelle vom Stapel und überträgt ihn
in den Akkumulator.
Mit der Befehlsfolge PHA ... PLA läßt
sich der Akkumulatorinhalt vorüberge-
hend zwischenspeichern, doch präge
man sich die goldene Regel ein, daß der
PLA stets vor dem nächsten RTS statt-
finden muß, andernfalls würde RTS den
Akkumulatorinhalt anstelle der Rück-
. sprungadresse vom Stapel ziehen!
TSX (Transfer stack pointerto X register)
überträgt den Inhalt des Stapelzeigers
in das X-Register.
TXS (Transfer Xregisterto stack pointer)
überträgt den Inhalt des X-Registers in
das Stapelzeigerregister.
Dabei ist zu beachten, daß der Stapelzei-
ger nur über das X-Register, also z.B.
nicht über den Akkumulator, gelesen
und verändert werden kann. Mit der Be-
fehlsfolge
LDX #$FF
TXS
läßt sich der Stapelzeiger neu initialisie-
ren (siehe JSR-Beispiel 2).
Teil 6
Bevor wir uns der hexadezimalen Addition
und Subtraktion zuwenden, werfen wir zu-
nächst einen Blick auf die dezimale Addi-
tion, wie sie ein „ABC-Schütze“ durch-
führt (Kasten 1).
Fall 1 erfordert keinen Übertrag. Fall 2 ver-
langt einen Übertrag in der ersten Stelle.
In Fall 3 sind zwei Überträge nötig; gleich-
zeitigsehen wir, daß die Addition von zwei
s-stelligen Zahlen höchstens zu einem
s + 1-stelligen Ergebnis führt.
Betrachten wir nunmehr die hexadezimale
Addition (Kasten 1). Zur Erinnerung: Die
hexadezimalen Ziffern erstrecken sich von
$0 bis $F, womit ein Übertrag von $1 erst
dann notwendig wird, wenn die Summe
von zwei hexadezimalen Ziffern $F (= de-
zimal 15) überschreitet.
In Fall 1 ist wiederum kein Übertrag nötig,
denn $1 + $1 = $2 und $D + $1 = $E.In
Fall 2 ist ein Übertrag in der ersten Stelle
erforderlich, denn$F + $1 = $10.InFall3
sind zwei Überträge vonnöten. Wir addie-
ren hier bei der ersten Stelle: $F + $1 =
$0 plus $1 „im Sinn“, und bei der zweiten
Stelle$E + $1 + $1 „im Sinn“ = $0 + $1
„im Sinn“, was in die dritte Stelle übertra-
gen wird. Auch für die hexadezimale Addi-
tion gilt, daß die Summe von zwei s-stelli-
gen Hexzahlen höchstens s + 1-stellig sein
kann.
Das Carry-Flag ist das Übertrags-Flag
oder Übertrags-Bit. Mit dem Befehl CLC
(Clear Carry) kann der Übertrag gelöscht
und mit SEC (Set Carry) gesetzt werden.
Mit dem Befehl ADC (= Add with Carry)
werden zwei zweistellige Hexzahlen zu-
sammenaddiert und mit SBC (= Subtract
with Carry) voneinander subtrahiert. Für
eine 8-Bit-Addition (= Addition von zwei
zweistelligen Hexzahlen), die höchstens
eine zweistellige Hexzahl als Ergebnis ha-
ben soll, und für die 8-Bit-Subtraktion gel-
ten stets die in Kasten 2 wiedergegebenen
Prozeduren.
Die hexadezimale Addition und Subtrak-
tion geschieht stets byte-weise und nicht
nibble-weise (halbbyte-weise). Zum Bei-
spiel besteht die zweistellige Hexzahl $AO
aus zwei Nibbles oder zwei Halbbytes $A
und $0. Sollen nur zwei niederwertige Nib-
bles, z.B. $A und $B, addiert werden, so
muß dies in der Form
CLC
LDA #3$30A $0HighNibble,
$A Low Nibble
ADC #$0B $0High Nibble,
$B Low Nibble
vor sich gehen, d.h. die höherwertigen
Nibbles sind auf Null zu setzen. Bei den
zwei Beispielen in Kasten 3 werden bei der
Addition jeweils zwei Nibbles zu einem
Byte zusammengefaßt.
45
Kasten 1
Fall 2 Fall 3
19 99
v 99
1 13
90 19:8
Fall 1
Zi
2
82
(Überlauf in 3. Stelle)
Dezimale Addition
Kasten 2
CLC
LDA
ADC
BCS
BCC
HEXZAHLI1
HEXZAHL2
FEHLER
OKAY
1-Byte-Addition
Kasten 3
Er. Er
11 11
$00EFEF
$001111
D 1
11
Übertrag („Carry“, „im Sinn“)
E..8
Fall 3
DF EF
11 4
1 1.4
FO 100
(Überlauf in 3. Stelle)
Carry
Hexadezimale Addition
Vor der Addition das Carry löschen
Summand1 in A-Register laden
Summand2 zum A-Register hinzuzählen
Überlauf, falls Summe > $FF
Kein Überlauf, falls Summe < $FF
BCS OKAY
HEXZAHL1
HEXZAHL2
FEHLER
Vor der Subtraktion Carry setzen
Minuend in A-Register laden
Subtrahend vom A-Register abziehen
Unterlauf, falls Differenz < $00
Kein Unterlauf, falls Differenz > $00
1-Byte-Subtraktion
61423
4369
SOOFFFF =
$SOOFFFF =
65535
65535
01
01
01 91:00 $010100 = 65792 $SOIFFFE = 131070
-— 65536
65534
- 65536 =
256 =
$010000
$000100
$010000
$SOOFFFE
Beispiele für 2-Byte-Additionen mit Übertrag in drittes Byte
Kasten 4
CLC ‚4stellige Addition SEC ‚4stellige Subtraktion
LDA SUMMANDILL ;Low Byte 1. Summand LDA MINUENDLL ;Low Byte Minuend
ADC SUMMAND2LL ;Low Byte 2. Summand SBC SUBTRAHLL ;Low Byte Subtrahend
STA SUMMELL ‚Low Byte Summe STA DIFFERLI. ;Low Byte Differenz
LDA SUMMAND2HH - ;High Byte 1. Summand LDA MINUENDHH ‚High Byte Minuend
ADC SUMMAND2HH - ;High Byte 2. Summand SBC -SUBTRAHHH ‚High Byte Subtrahend
STA SUMMEMM ‚Middle Byte Summe STA DIFFERMM ‚Middle Byte Differenz
BCC OKAY ‚Summe 4stellig! BCS OKAY ‚Differenz 4stellig!
ADC +#3$00 ;$00 + Carry 1 addieren SBC +#3$00 ;$00 — Carry O subtrahieren
STA SUMMEHH -;High Byte Summe; 6stellig! STA DIFFERHH ‚High Byte Differenz; 6stellig!
2-Byte-Addition
Wenn b Bytes umfassende Hexzahlen ad-
diert bzw. subtrahiert werden sollen und
falls das Ergebnis b+1 Bytes umfassen
darf, ist die Prozedur aus Kasten 4 anzu-
wenden. Man beachte, daß stets mit dem
niederwertigsten Byte zu beginnen ist.
Das hier abgedruckte ausführliche Bei-
spiel ist unser erstes, etwas größeres
46
2-Byte-Subtraktion
Assemblerprogramm. Es verwendet sy-
stemspezifische Routinen. HEXOUT
(hexadezimaler Output) zeigt den Inhalt
des Akkumulators als 2stellige Hexzahl
an. OUT (Charakter Output) gibt das im
Akkumulator befindliche Byte als AS-
Cli-Zeichen aus. Ferner werden zwei
Pseudo-Opcodes HEX und ASC ver-
wendet, die bei verschiedenen Assem-
blern verschiedene Bezeichnungen ha-
ben können. Schließlich wird erstmals
am Ende des Listings eine „Symbol
Table“ abgedruckt, die die im Pro-
gramm benutzten Labels alphabetisch
und numerisch, d.h. adreßmäßig, sor-
tiert zusammengestellt.
Peeker 7/85
Im einzelnen werden folgende Beispiele
durchgerechnet:
8-Bit-Addition/Subtraktion ohne Überlauf/
Unterlauf: Eine Überprüfung des Über-
laufs/Unterlaufs läßt sich sparen, wenn im
voraus bekannt ist, daß aufgrund der Wer-
te keiner möglich ist.
16-Bit-Addition/Subtraktion mit nicht er-
wartetem, aber möglichem Überlauf/Un-
terlauf: Hier soll das Ergebnis im Bereich
$0000 - $FFFF liegen, also mithin 4stellig
oder 2 Byte lang sein. Sofern dieser Be-
reich bei Addition über- bzw. bei Subtrak-
tion unterschritten wird, führt dies zu einer
Fehlermeldung.
Verschiedene fehlerhafte 8-Bit-Additio-
nen/Subtraktionen: Addition nach SEC,
Subtraktion nach CLC, Überlauf und Un-
terlauf. Man beachte, daß ein Mikropro-
zessor im Gegensatz zu BASIC, PASCAL
usw. keine „freundlichen“ Fehlermeldun-
gen wie „OVERFLOW ERROR“, „OUTOF
RANGE“, „ILLEGAL QUANTITY“ usw.
ausgibt, wenn tatsächliche Fehler in ei-
nem Maschinenprogramm auftreten. Viel-
mehr tut der Prozessor so, als wäre nichts
gewesen.
Teil 7
14 Binärzahlen
Im letzten Teil wollen wir uns mit einigen
Bitbefehlen befassen. Ein Mikroprozes-
sor weiß intern noch nichts von dezima-
len und hexadezimalen Zahlen, son-
dern kennt nur Binär- oder Dualzahlen,
d.h. die Zustände Spannung ein —
Spannung aus. Eine Binärzahl ist eine
Positionszahl mit der Basis 2, der zur
Verdeutlichung in der Regel ein Pro-
zentzeichen vorangestellt wird.
Beispiele für zweistellige Binärzahlen:
%00 = dezimalO
%01 = dezimal 1
%10 = dezimal 2
%11 = dezimal 3
USW.
Die vierstellige Binärzahl %1111 errech-
net sich wie folgt:
Peeker 7/85
0. Stelle = 2hoch O * 1
1. Stelle = 2hoch 1 * 1
2. Stelle = 2hoch2 * 1
3. Stelle = 2hoch 3 * 1
4
2
4
8
ergibt zusammen 1 +2 +4 +8 = dezi-
mal 15 = hexadezimal $F.
Ein Byte kann als eine achtstellige Binär-
zahl dargestellt werden, wobei die acht
Bitstellen von rechts nach links und von O
bis 7 durchnumeriert sind, z. B.:
76543210 Bitposition
%11110000 Bitmuster
Die rechten vier Bits, also Bit 0-3, bilden
das niederwertige Halbbyte, die linken
vier, Bit 4-7, das höherwertige. Ein Bit
kann gesetzt (= 1) oder zurückgesetzt
(= 0) sein. Die Summe der Bits wird auch
als Bitmuster bezeichnet. Im Gegensatz
zu höheren Programmiersprachen wie
BASIC, Pascal usw. eignen sich die Befeh-
le eines Mikroprozessors hervorragend zu
Bitmanipulationen. Die Befehle AND und
ORA dienen zum Setzen und Zurückset-
zen (Wegblenden, Löschen) von Bitmu-
stern, während die Befehle ASL und LSR
zum Verschieben von Bitmustern verwen-
det werden.
15 AND und ORA
AND = logischer Und-Befehl (and)
ORA = logischer Oder-Befehl (or A)
AND undiert den Inhalt des Akkumulators
A mit einem Bitmuster der Speicherstelle
M und überträgt das Resultat der Undie-
rung in den Akkumulator. Nehmen wir an,
der Akkumulator A enthalte den Wert
%11111111 und die Speicherstelle M das
Bitmuster %00001 111. Dann gilt:
LDA #%11111111
ANDMEMORY
%t1111111 = A
%00001111 = M
%00001111 = A
AND setzt bei A diejenigen Bits, die zuvor
sowohl bei A als auch bei M gesetzt waren.
Es gilt nachstehende Wahrheitswertta-
belle:
AM A
oo a
098 -
o0090.,
ORA setzt bei A diejenigen Bits, die zuvor
mindestens bei entweder A oder M gesetzt
waren.
LDA #%11111111
ORA MEMORY
%11111111 A
%00001111M
11111111 A
Für ORA gilt die Wahrheitswerttabelle:
AM A
oo...
oO —-0—-
Ir
AND dient damit zum Wegblenden uner-
wünschter und ORA zum setzen ge-
wünschter Bits. Nehmen wir an, wir woll-
ten bei einem im Arbeitspeicher abgeleg-
ten, 256 Bytes umfassenden Text Bit 7 je-
des Bytes setzen. Zu diesem Zweck würde
folgende Schleife genügen:
LDY #0
.LOOP LDA MEMORY, Y
ORA % 10000000
STA MEMORY, Y
INY
BNE LOOP
Wollten wir umgekehrt Bit 7 bei allen Bytes
wegblenden, müßten wir so programmie-
ren:
LDY #0
LOOP LDA MEMORY, Y
AND %01111111
STA MEMORY, Y
INY
BNE LOOP
Man beachte, daß AND und OR nur den In-
halt von A und niemals den von M direkt
beeinflussen, so daß zur Änderung einer
Speicherstelle M zunächst M in A geladen
und nach der Bitmanipulation wieder in M
zurückgespeichert werden muß.
16 ASL und LSR
ASL = Linksverschiebung
(arithmetic shift left)
LSR = Rechtsverschiebung
(logical shift right)
ASL verschiebt wahlweise das Bitmuster
von A oder vonM insgesamt um eine Stelle
nach links. Ferner wird Bit 7 in das Carry-
Flag (= Übertrags-Flag) übertragen und
Bit O auf O gelöscht. Sofern das Bitmuster
von A selbst verändert werden soll, spricht
47
48
10208: ac 05 12
1003: FF
1004: 08
1005: 8D
1008: A9
18®A: 8D
1®82D: AD
18108: BA
18ll: 8D
1814: 99
1016: A9
1218: D®
18lA: A9
ldlc: 28
1d1F: CE
18022: D®
1024: 69
--End assembly=-r
37 bytes
Errors:
)
03
04
03
03
24
E9
19
18
10
10
FD
10
vosavuPw6%ßkh
ORG
* + +
befinden.
rr r xx + + *
JMP
zeichen an.
x rr + + r
veraendert.
CHAROUT EQU
*
HEXZAHL HEX
BITS HEX
*
510092
BINAER-ANZEIGE
BEGINN
A-, X- und
Y-Register werden nicht
SFDED
FF
28
Anzeige eines hexadezimalen
Bytes als 8stellige Binaerzahl
Das anzuzeigende Byte muss
sich bereits im Akkumulator
ROM-Routine CHAROUT zeigt
beim Apple // Inhalt des
Akkumulators als ASCII-
‚spaeter 0
"8. Bits
* Hexzahl zwischenspeichern
* und Bitzaehler auf 8 setzen
*
BEGINN STA
LDA
STA
*
* Momentanes
* nach links
*
*
*
SCHLEIFE LDA
ASL
STA
*
* Falls Carry-Bit ®,
*. Falls CarryrBit |,
*
BCC
EINS LDA
BNE
NULL LDA
%*
ANZEIGE JSR
Fr re er
DEC
BNE
RTS
HEXZAHL
#8
BITS
Bitmuster laden
schieben und das
HEXZAHL
HEXZAHL
NULL
yujpm
ANZEIGE
4ugu
CHAROUT
BITS
SCHLEIFE
dadurch veraenderte Bit-
muster erneut speichern
"9" anzeigen
"]" anzeigen
‚stets
Bitzaehler um 1 vermindern.
Wenn noch nicht alle 8 Bits
abgearbeitet wurden, erneut
Schleife durchlaufen.
man von der sogenannten Akkumulator-
Adressierung.
Beispiele:
LDA #%01111111;A vorher
ASLA ‚Anachher
76543210 Bitposition
A%01111111 vor ASL
A %11111110 nach ASL
(Carry-Flag jetzt 0)
LDA #%10101010:A vorher
ASL A ‚Anachher
76543210 Bitposition
A %10101010 vor ASL
A %01010100 nach ASL
(Carry-Flag jetzt 1)
LSR verschiebt wahlweise das Bitmuster
von A oder M insgesamt um eine Stelle
nach rechts. Ferner wird BitO in das Carry-
Flag übertragen und Bit 7 gelöscht.
Beispiele:
LDA #%01111111;A vorher
LSRA ‚Anachher
76543210 Bitposition
A%01111111 vor LSR
A %00111111 nach LSR
(Carry-Flag jetzt 1)
LDA #%10101010;A vorher
LSRA ‚Anachher
76543210 Bitposition
A %10101010 vor LSR
A %01010101 nach LSR
(Carry-Flag jetzt 0)
ASL und LSR werden unter anderem bei
Multiplikationen und Divisionen benötigt.
So bewirkt ein einzelner ASL-Befehl eine
Verdopplung des vorherigen Akkumula-
tor-Inhalts (A = A # 2), z.B.:
LDA #%00001010 ;dezimal 10
ASL A ;A jetzt 900010100 = dezimal 20
Umgekehrt bewirkt ein einzelner LSR-Be-
fehl eine Division durch 2 (A = A: 2), z.B.:
LDA #%00011110 ;dezimal 30
LSR A ;A jetzt %00001111 = dezimal 15
Nebenstehendes Beispiel zeigt, wie man
eine zweistellige Hexadezimalzahl als
- achtstellige Binärzahl anzeigen kann.
Peeker 7/85
APPLE -- DISKETTEN LAUFWERKE -- APPLE :
Original Disk Ilm. Controller + DOS3.3+ Hdbuch DM 995,— 100% Apple-kompatibel 6 Mon. Garantie Reparaturservice
Original Disk II (2. Laufwerk) DM 8235.— bei Verwendung des
Duo-Disk Station Slimline, 2 x 143KB Chinon DM 995 APple-Betriebssystems.
Siemens Disk-Laufw., 143KB, m. Kabel + Gehäuse DM 525.—
Abor-Disk-Laufw., Slimline, 143KB, m.Kab. + Geh. DM 398,—
Chinon Slimline, 143KB, Superleise,m.Kab.+Geh. DM 495,—
IBM *°'"* KOMPATIBEL ***** IBM *** KOMPATIBEL *
Alle Teile unterliegen einer sorgfältigen Endkontrolle und wir
übernehmen daher volle Garantie für die Funktionsfähigkeit,
sowohl für die gelieferten Leerplatinen, als auch für die fertig
bestückten Boards und Interface Karten, die fast ohne Ausnahme
mit gesockelten IC's geliefert werden.
IBM -- Kompatible Interface Karten und Mainboards -- IBM
Teac 55F, 1 MB unf. Kapazität, Shugartbus — i
Teac 55F, kpl..in Gehäuse 40/80 Track, 1MByte DM 508; Disk Controller Karte für 2 Disk-Drives "KL-2020 DM 228,-
anschlußfertig, mit Umschaltung 40/80 + Kabel DM 648,— - a Board, "KL-2050 DMab 398,-
rg = Er I) RL 43 KB, mit Kabel DM 498,— RS 232 a ee KL2074 Di wi 10-
- ACES + MAINBOARDS -- APPLE - z _
Disk Controller f. 2 Original 0. kompat. Drives "DM 89— £ Feen Paralell Interface Karte KL-2072 DM 148,-
nn ern 55F, mit Software “DM 188,— £ Paraleil. Clock mi O Kbestückt sg *KL-2040 DM 398
ich- ER, N ‚ ’ - -
er gegen re a S dto. wie vor, jedoch mit 128K bestückt "KL-2041 DM 548,
16K RAM Erweiterung fürll und kompatible DM 98— APPLE -TASTATUREN+LEERGEHÄUSE + NETZTEILE- APPLE APPLE -- ORIGINAL + KOMPATIBLE - COMPUTER -- APPLE dto. wie vor, jedoch mit 256K bestückt "KL-2042 DM 698,-
Z 80A Interface Karte für CPM 2.2 "DM 83 — Standard Einbau-Tastatur, ASCII, freibel. 9 Tasten, APPLE Ile, 64KRAM, Ascii-Tastat. + UHF-Modul. DM 2198,— 512K RAM Karte, mit O K bestückt KL-2095 DM 248,-
Z 80B Interface Karte für CPM 3.0. m. 64K RAM DM 595 — Doppelbelg. aller Tasten, Groß+Kleinschr. Nr.N26 DM 139,— APPLE Ile, Einstiegspaket = Computer 64KRAM, dto. wie vor, mit 128K bestückt KL-2096 DM 398,-
Printer-Grafik Interface, Epson kompatible "DM 98 — Tastatur wie vor, jedoch mit 15er Block Nr.N67 DM 178,— + Philips-Monitor 18 Mhz grün + Siemens F122 - Multi I/O Interface Board, RS232, Disk-Controller,
Centronic-Paralell Text-Interface Karte DM 8— Tastatur Nr. N67, mit sep. Gehäuse, kpl. m. Kabel DM 249,— Laufwerk 143K m. Controller + Lerndiskette DM 3098,— Centronics, Clock, Joystick
Printer-Grafik Interface, NEC/ITOH kompatibel "DM 169— Seperate Tastatur IBM-Look, anschlußfertig mit APPLE II C, 128 KRAM, ASCIl Tastatur DM 2795,— und Lightpen-Port *"KL-2071 DM 568,-
Anschluß Kabel f. Paralell + Grafik Interface DM 34— Kabel, Dopp. belegt.Tasten, freiprog. Funkt.Tasten DM 298,— APPLE II C, wie vor, jedoch deutsche Tastatur DM 2998, — Eprom Writer Karte (bis 128K benutzbar) 598,-
Buffer Grafik-Interface benutzbar für Drucker Seperate Tastatur, Eprom progr.-bar, Cursorblock MACINTOSH System komplett m. Mouse + Tastatur Hardisk/Winchester Host-Adapter Karte *KL-2022 DMab 998,-
Epson/Nec/ltoh/Okidata u. anderem. 32% Buffer DM 348— Tastenfeld mit 24 Funktionen, Deutsch o. ASCII DM 398,— + Macwrite/Macpaint, Systemguide-Diskette DM 5995,— Mainboard XT Version, 8 Slots O bestückt
Buffer Interface wie vor aber mit 64K Buffer “DM 595 — Leergehäuse Standard, passendf. TastaturNr.N26 DM 98,— MEWA-48K, Apple kompat., Netzt. 5Amp, Tastatur mit 1 Boot-Eprom, 6 Eprom-Plätze frei *KL-1004 DM 699,-
Anschluß Kabel f. Buffer Interface Karte DM 39 — dto. wie vor, jedoch passend für 15er Tast. N67 DM 119,— mit Dopp-Belegung + 10 frei Prog.Tasten, mit dto. wie vor, jedoch mit 128K bestückt "KL-1005 DM 849,-
232C Serielle Interface (karte "DM 109 — Leergehäuse wie Mewa 9000, für Einbau von zwei UHF-Mod,, ohne Firmware Eproms. DM 698,— dto. wie vor, jedoch mit 256K bestückt "KL-1006 DM 999,-
Super Serielle Interface Karte, Fullduplex “DM 188 — Slimline-Laufwerken + Tastaturanschluß, Plastic DM 159,— MEWA-S4K. wie vor jedoch mit 15er Block DM 728,— Mainboard PC Version, 8 Slots, 64K bestückt
Sprach (Speech) Karte f. S rer abe "DM 78— Leergehäuse wie vor, jedoch in Metall-Ausführung DM 198,— MEWA 9000er Serie, mit seper.Tastat. DIN o. ASCIl mit 1 Boot-Eprom, 6 Eprom-Plätze frei "KL-1010 DM 896,—
6522 Paralell Interface 2 9 "DM 149 — Leergehäuse IBM-Look, f. 2 Laufw. Standard 5° DM 198,— m. dopp. belegt. Funkt-Tasten, Cursorbl. + 15er dto. wie vor, jedoch mit 128K bestückt "KL-1011 DM 996,—
Clock Karte (Datum/Uhrzeit) Ein/Ausgabe "DM 129 — Leergehäuse für 1 Slimline Laufwerk, Metall DM 19,90 Block Netzt. 5 Amp., Gehäuse für 2x Slimline- dto. wie vor, jedoch mit 256K bestückt "KL-1012 DM 1296,—
Eprom Writer Karte (2716 - 2764) 9 -DM 1299 — Leergehäuse f. Duo-Disk = 2x Slimline-Laufwerke DM 98,— Laufwerke UHF-Modulator, o. Firmw.-Proms Bei den mit * gekennzeichneten Artikeln gehört zum Lieferumfang
IEEE-488 Interface Karte "DM 398 — Leergehäuse f. Duo-Disk = 2x Standard-Laufw. DM 109, — (12KROM), 48K RAM DM 998,— ein Manual, und z. T. ein Schaltbild.
Logo-Karte mit Diskette und Handbuch DM 498 — Leergehäuse f. Duo-Disk = 2x Slimline + Netzteil DM 179,— MEWA 9000-64-C, wie vor jedoch 64K RAM DM 1098, — IBM -- Kompatible Leerplatinen + Boards -- IBM
use Karte m. Diskeite und Handbuch "DM 119 — Schaltnetzteile für APPLE u. kompatible Rechner MEWA 9000-64-C Einstiegspaket, wie vor, jedoch Disk Controller f. 2 Drives DM 58—
PAL Color Interface Karte (UHF + Video) "DM 129 — +5V/3,5A -5V/0,5A +12V/2A -12V/0,5A N73 DM 99,80 mit 1 Disk Drive eingeb. + Disk-Contr. + Monitor, Color Grafik Video Board DM 78—
RGB Interface Karte (f. Apple Il + I1+) "DM 169 — +5V/5 A -5V/0,5A +12V/2,5A -12V/0,5a N74 DM 119,80 grün DM 1898, — RS232 Interface Karte DM 68,—
Wild Karte (kopiert über RAM-Bereich) "DM 1 19 — +5V/7,5A -5V/0,5A +12V/2A -12V/0,5A N75 DM 149,50 IBM-Look Gehäuse für MEWA 9000 Serie Aufpreis DM 39,— Centronics Paralell Interface Karte DM 68—
TEA Een Nana. Peichachweie "EM BB una TTEN + DIERETTENBOSEN 7 ser. MATRIX- UND TYPENRAD - DRUCKER — """'"""" Multifunktion Interface Board DM 99,—
256K RAM Erweiterungs Kartem Patchsoftware "DM 598 L’0fiDisk.Box, m. Schloß, Klars.-Deckel, 100Disks DM 49,— _ p.g0 Matrix Drucker, Epson kompat.,vollgrafik(. DM 739,— Eprom Writer Interface Karte DM 78,—
6809 Prozessor Exell-9 Interfacekarte Be +DM 398,— Disk Box mit Klara -Dockat, ca. FO-Diekeiten 5" I. Ge CP-80 X mit eingeb. Interface für VC64f.Sim.B. DM 899,— Multi I/O Board DM 78,—
IC-Tester Interface Karte (RAMS/TTL 54/74) DM 448 Nartbox für 10 Disketten, mit Klappdeckeleö DM 690 SPEEDY 100-80, Epsonkompat.,1002/s,v.-grafik. DM 759,— Mainboard XT Version, 8 Slots DM 98,—
ausiistine S8K 0: Firmware Eproms: 8 Siot DM 448 — Disketten, mit Verstärkungsring, 3 Jahre Garantie GEMINI 10X Neu mit Textsp 100 Z/s 9x9 Mat DM 998. — Mainboard PC Version, 8 Slots DM 9,—
Hauptplatine 4 2 ee p S, Ss DM 498 — ABX 100 = SS/SD 10 Stck. a. 3,98 50 Stck. a. 3,88 500 Stck. a. 3,59 GEMINI 15X. wie 10X, jedoch bis 375 mm Papierbr. DM 1198, — RAM Card für Speicher-Erweiterung DM 68—
APPLE = ___ LEERPLATINEN = A sek gng ITOH 8510, Die Zuverlässigkeit in Person DM 1475,— Alle Leerplatinen werden mit Bestückungsplan geliefert.
Leerplatinen der obigen Interface Karten sind alle in vergoldet, ac Re Bu JUKI 6100, Typenraddr., 22 Z/s, TA-Typenräder ug een kenn un ask. gegen rg u
> EEE 7 IBBLTTORRUNGIOLDEN. .. c -Artik i Zwi Rechner Leergehäuse f. Einbau v. 2 Drives DM 236,—
eerplatinen mit der Kennzeichnung DM 39,— omputer rti el Nachnahmeversand unfrei, Zwischenverkauf vorbehalten. j Profi-T Kabel im Gehä ASCH DM 395,—
Leerplatinen mit der Kennzeichnung "DM 24,50 Angebote freibleibend unter Anerkennung unserer Lieferbedingungen. Technische Änderungen vorbehalten. "Apple ist eingetragenes ei " Seseigehhite ige © Art a Be “ DM 489 —
Leerplatinen mit der Kennzeichnung +DM 33,— Warenzeichen der Fa. Apple-Computer Inc., Kalifornien. Ware mit Rückgaberecht, besonders gekennzeichnet, muß frei zurückgeschickt Er arte JE90C real ng ASCH . DM 298 —
Experimentier Platine, für Apple Slot EX300 DM 29,90 werden. *IBM* ist eingetragenes Warenzeichen der Firma IBM GmbH Ffm. Were ln niert 1 00 Watt DM 298 —
Leerplatine Motherboard, 48K, mit Best.-Aufdruck DM 66,— dto wie vorj _
: : ‚ k jedoch 135 Watt DM 338,
Leerplatine Motherboard, 64K, mit 6502 + 280 om 9— COMPUTER CENTER CONEX ERICH-WILLI MEYER Disketten Laufwerk, 2x40 Track DS/360 KB DM 498,—
5650 SOLINGEN 11 - Postfach 110206-7 T 6343 FROHNHAUSEN - Postfach 70 11 Harddisk 10MByte, kpl. m. Xebec Controller DM 2990,—
Telefon (0221) 75449 Telefon (027 71) 350 71 Sonderliste gegen Rückporto. Katalog gegen 3 DM in Briefmarken
un u mu Ber um A EEE BE
Telefon (02 41) 3 49 62
INTUS - Lernprogramme
Demo-Disk DM 10,—
@ mit 8 voll lauffähigen Teilprogrammen zum interaktiven Lernen.
Dazu 7 Denkspiele.
Noppiusstraße 19, 5100 Aachen M C R Oo coM O M P U T E R
@&appie II
DOS 3.3
Nach dem ROM-Listing jetzt das |
DOS-3.3-Listing für den Apple-Il
e sehr ausführlich englisch kommentierter Assembler-
quellcode mit Symbolen
e Als Quellcode für Toolkit-Assembler geeignet
e Crossreferenzliste aller benutzter Symbole Assembler -
e DOS-Tips (Autostart, Leserfehler)
e Programme (Init ohne DOS, DOS-Checker)
® Lauffähig auf Apple Ile, Ilc, teilweise Il+.
Katalog mit über 200 Programmen gratis. , :
Listing
® Lernprogramme für Sprache, Mathe, Basic, Maschinen-
schreiben, Informatik, Schnellesen, Vorschule, usw. Außerdem folgende Bücher vorrätig: (ISBN 3-925074-..-.) eo BEER
ROM-Listings fürApple-Il (ISBN -04-X) 59.- DM — RöckRATH
® TRS-80 Model I, Genie I+ll (ISBN -01-5) 69.50 DM ESCHER
TRS-80 Model Ill (ISBN -02-3) 79.- DM
INTUS < OFTVVAR F Colour-Genie (ISBN -03-1) 59.- DM F. Engels: Apple-Il-DOS-3.3-
Dragon-32/64-Lexikon (ISBN -05-8) 69.- DM Assembler-Listing (107 S., DIN-
Maschinensprache für TRS-80/Genie und CG (ISBN -07-4) 49.- DM AS, kart., ISBN 3-925074-09-0,
Kaiserstraße 21 - 7890 Waldshut-Tiengen - Telefon 07751-7920 Assemblertricks auf dem Colour-Genie (ISBN -08-2) 49... DM 59. DM)
Appie und IBM
kompatible Gomputer
16K, Z80, Diskcontroler je ........ en . 110,-
80 Zeichenkarte mit Softswitch
2 Zeichensätze ................... ARTEN er
Motherboard 48K ohne
Firmware .......... MAIN RR ERENTO >S 610,-
Erphi-controler mit Autopatch
Siemenslaufwerk F 122......... ER
Philips X3134 2x80 Track ............. ale 465, -
TEAC FD-55B 2x 40 Track ................ „.. 468,—
TEAC FD-55F 2x80 Track
Neu: Stardrucker SG 10
Monochrome Monitore
Farbmonitore ...... PESCEEEUNE SU ARREENERR ng
Tastaturen für IBM und ‘Apple Ei .. ab 330, _
Versand nur per Nachnahme oder Vorkasse
Weiteres Zubehör für Apple und IBM gegen
frankierten Rückumschlag.
Preissenkung:
128K Karte (Saturn kompatibel) .... 395,—
Zusatzkarten und Motherboard ausnahmslos
deutsche Fertigung mit ausgesuchten Bauteilen.
Ulf Mohwinkel Electronic
Berliner Straße 73
5090 Leverkusen Fettehenne
Telefon 02 14/937 81
APPLE //e
APPLE AL
| und kompatible Computer
"yonsÄor
-ueIY Iamz uoA gnIyosuy Wunz LHOdAOF
" dnpioeg 'n WVH II (1289) PieQ-VId ‘Or dAV
" dnyoeg 'n WVH Hu (2259) PıeQ-viN 'gZ QaV
491 ‘08Z
an EI-0L ‘es
jegqiyedwoy-ejddy ‘'Y8r ‘Od-Il NOSIW
“un 81-51 '0Q - "IQ Jun 81-21 'OW :InesusAuspe]
3sS Q4 Iv3l
YOUMSYOS usy9I9Z 08
ISMW 'piul "YOIS Old asield
" ZEZ SH ‘SIINOHLN3O 'WOHd3 "IVd
"wis jeqiyedwoy-ejddy YoeıL Or ‘E01 AQ1
Universeller EPROM-Programmer 4003
8 Programmiert alle gängigen EPROM-Typen (z.B.: 2716,
2732,-64 ,-128,2508,-16,-32,-64...) @ Voll menügesteu-
erte Software auf Diskette M@ Kein Schalten, Löten oder
Stecken nötig @ Programmierspannung wird im Gerät er-
zeugt M Verbindung zum Rechner über Flachbandkabel
Rote und grüne Leuchtdiode zur Betriebsart-Anzeige M
Komplett mit 28 poligem Textool-Sockel M
Fertiggerät DM 269,50 ® Bausatz + Anleitung DM 219.-
APPLE //e Ysaköyie ran
* yoyedonny FOQiV Jejlouoy-Iyd-u
sie] Jyes SA WeIL 08 SYP WS Meßnys
UONMNPOAG Byasnap pusyaßyam
JO9V343LNI31ddV
(neyuenuspe SM) EOELEES-0EO uOJeloL
-027
-00€
-"095
-059
-0r
-051
-021
-002
-02, ol
"56 '-'58
-'0001 ge
0802 VAL
00 LOHPZ
00S1rZ
NdO v08Z
SU0G2-99222
SU0SZ-821212
su0g2-F912
su0gr-zE12
su0gF-9L72
su0Sr-8022
(9L0Z WUYS) EI19L19
G861 9 62 PuUeIS
J13.LNI3TN
104 wu 8 031
"YOIS OL IIoysedns joy wwg 0371
SLO 9szır WNL
"yeloyny P9Lr MSWN
suoSL-F9Lr AdN
sU003-9L17 AdN
m 80 gestochen scharfe und flimmerfreie Zeichen / Zeile
w plus zusätzliche 64 KByte schnelle dynamische RAM's
B ermöglicht Double Hires Graphik ( 560 # 192 Punkte
w vergoldete Steckerleiste und Qualitätsbauteile
yulgq Joy wu sg 031
Yyuıq qI99 ‘0 UND WW G 3
Geprüfte Platine + Demo Disk + Beschreibung DM 219,50
Bausatz DM 189.- ® Leerplatine + Bauanleitung DM 59.-
Ab Lager lieferbar. Alle Preise ınklusive Mehrwertsteuer.
DOBBERTIN
INDUSTRIE-ELEKTRONIK
Brahmsstraße 9, 6835 Brühl, Tel. (06202) 71417
Sp uNeg 0001 - 22 Bomuszinyosapıeg) - JeqIoy "O2 YUEL 'L
J OHIIN-INOLSANZL 3
ING 0S‘L+ NN !eq ‘YA Jepo NN Jed puesieA
wa —'s 6 052 sıq :Bunyoediey pun Oyog !Wa —'OL+ ISuos Wa
06° —
gGL—
PER L
081
g17
sg’—
08 —
051
052
— 05 HEMIEISEASEPUIN “"y "e UIeYEISUSBUEN] Pun ajleyneg Jene
08°—
Peeker 7/85 49
Fortsetzung von Seite 31
und normale Anzeige, Ctri-Q kehrt in das
Hauptmenü zurück.
QUITTIEREN - Die Eingabe von „Q“ be-
endet das Programm. Das Programm
BITEDITOR steht weiterhin im Rechner-
speicher und kann geändert werden, ohne
den ebenfalls im Speicher enthaltenen
Zeichensatz-File zu beeinflussen.
Die vier wichtigsten Variablen und ihre
Werte werden in der untersten Bildschirm-
zeile des Hauptmenüs angezeigt und kön-
nen gegebenenfalls in der Initialisierungs-
Routine des Programms geändert werden.
In Bild 3 ist der Buchstaben B noch einmal
fett und daneben fett-invers dargestellt.
KERERERRRR
*+ . EERKRRERRH
*+ *
* Br Bu
HEBERB * * rz
"EB BEE * Me
* BER 3
* * BER m*
Fr + u5*
» 2
*
"* 5 —
SEBEBSE
WURBENNEAN KERKRKFRRFR
Bild 3
BITEDITOR
Das Programm erklärt sich durch die reich-
lich verwendeten REMs praktisch von
selbst. Sie können die REMs beim Ab-
schreiben des Programms weglassen
oder mit einem REM-Remover-Programm
entfernen, da Zeilen, in denen nur Erläute-
rungen stehen, nicht angesprungen wer-
den. Das zu bearbeitende Zeichen wird als
Binärmuster in einen Array geschrieben,
welches als Matrix am Bildschirm zu se-
hen ist. Änderungen erfolgen im Array.
Erst bei der Übernahme durch <RE-
TURN> wird der geänderte Array in den
Speicher geschrieben.
Ich habe die Änderung an mehreren Ap-
ple-Arbeitsplätzen durchgeführt, je nach
Monitorqualität mit inversem, fettem und
normalem, nicht fettem Zeichensatz oder
mit beiden Zeichensätzen fett. Je billiger
der Monitor, desto größer der sichtbare
Erfolg. Unser Fernsehgerät mit Video-Ein-
gang läßt die 80-Zeichendarstellung über-
haupt erst nach der Modifikation zu, mit
nur geringfügig schlechterer Qualität läuft
diese auch über einen guten HF-Modula-
tor und den Antenneneingang eines TV-
Gerätes.
VTABVS+I
Selbst bei teuren 80-Zeichenkarten wird
der inverse Zeichensatz scheinbar nur
durch Invertieren des normalen gewon-
nen. Dabei ist es allerdings fast unmöglich
— auch bei sehr guten Monitoren —, beim
Betrieb am Apple eine Einstellung zu fin-
den, die zugleich eine gute normale und
eine gute inverse Darstellung erlaubt.
Mich wundert es deshalb, daß der inverse
Zeichensatz auf den 80-Zeichenkarten
nicht fett oder in ähnlicher Form geliefert
wird. Kompromisse müssen bei einer Ma-
trix mit relativ niedriger Auflösung wohl
immer gemacht werden, eine so deutliche
Steigerung der Lesbarkeit wie hier recht-
fertigt die Modifikation aber unbedingt.
Anmerkung zur Sammeldiskette:
Auf der Peeker-Sammeldiskette sind die
drei Zeichensatz-Files NORMAL, FETT
und FETT.INVERSE enthalten.
1909
1019
1029
1039
1949
1199
111@
1129
1139
1149
1159
1299
1219
1229
1239
1399
1319
1329
1339
1349
1409
1419
1429
1439
1449
1459
1599
1519
1529
1539
1549
1559
1569
1579
1589
1699
161®
1629
1639
50
REM BITEDITOR:
REM zeigt Speicherinhalte binär an und erlaubt
REM diese zu editieren (z.B. Zeichensätze)
REM Klamt 11.83 Version 19.84
GOTO 4629: REM Programmbeginn
REM a ale ae ae ale ale ak ak ak ak ale ak ak ae ae ae ae ak ak ak ak a ae ee aa
REM DEZ -> HEX Umwandlung
H$ m
HH DEC / 16:DEC = INT (HH):HH = (HH - DEC) * 16: IF
HH > 9 THEN HH =HH + 7
H$ = CHR$ (HH + 48) + H$: IF DEC < > 9 THEN 1139
RETURN
RIEEM 3 aka ak ale ak ae ak ak ale ak ale ak ak ak ae ak ae ak ae ak aa aa aa aa aaa
REM HEX -> DEZ Umwandlung
DEC = ß: FOR I = 1 TO LEN (H$):HH
(H$,I,1)) -— 48: IF HH > 9 THEN HH
DEC = DEC * 16 + HH: NEXT I: RETURN
REEM 3 ale ak ak ae ale ak ak ak ak ae ae ak ak a ae ae ak ak aaa ak aaa aaa ak
REM Array füllen und DEZ -> BIN Umwandlung
DEC = DEC / 256
FOR J = ® TO WI:DEC = DEC * 2:AR(J,I) = INT (DEC):DEC
= DEC - INT (DEC)
NEXT : RETURN
REEM aaa ak ak ale ak ae ale ak ale aka aka aka aaa aka
REM Eine Array-Zeile lesen, BIN -> DEZ Umwandlung
DEC =
FOR J = ß TO WI
DEC = DEC * 2 + AR(J,I)
NEXT : RETURN
REM 3a a ak ak ak ak ak akt ak ak ak ak ak ak ak ak aka
REM Eine Zeile des Bitmusters ausgeben
HTAB HS
ASC ( MID$
HH - 7
BIN = AR(J,I)
IF BIN = ® THEN PRINT " ";
IF BIN = 1 THEN INVERSE : PRINT " ";: NORMAL
NEXT : PRINT : RETURN
REEM 3% ae ak ak ae ak ak ae ak ale ae ak ae ale aka aka
REM Adresse ausgeben
IF WW THEN RETURN
FOR I = TOLG-L1
IF NOT W AND I > ® THEN 1719
DEC = ST + I: IF DEC < Rl OR DEC > R2 THEN PRINT CHR$
(7);: GOTO 1719
GOSUB 112®: REM DEZ -> HEX
IF LEN (H$) < 4 THEN FOR K = 1 TO 4 - LEN (H$):H$ =
"g" + H$: NEXT
HTAB HA: PRINT "$";H$: REM Adresse ausgeben
NEXT
RETURN
REM 3a
REM Inhalte ausgeben
FOR I=9TOLG-L1
IF ST+ I< R1l OR ST + I > R2 THEN PRINT CHR$ (7);:
GOTO 19@P
VTAB VS + I
GOSUB 1429: REM Array lesen, BIN -> DEZ Umwandlung
GOSUB 112®: REM DEZ -> HEX
IF LEN (H$) = 1 THEN H$ = "9" + H$
HTAB HC: PRINT "$";H$: REM Eine Zeile ausgeben
NEXT
RETURN
REM 3 ak aaa
REM Bitmuster-Fenster neu schreiben
POKE 33,WI + 1: POKE 32,HS - 1: POKE 34,VS - 1: POKE
35,VS + LG - 1: HOME : TEXT : REM Fenster löschen
FOR I=9 TOLG-L1
IFST+ I< Rl1 OR ST + I > R2 THEN PRINT CHR$ (7);:
RETURN : REM Bereichskontrolle
DEC = PEEK (ST + I)
GOSUB 132®: REM Array füllen
GOSUB 1529: REM Bitmuster ausgeben
NEXT : RETURN
REEM 3% ak ake ak ak ale aka ak aka ak aka ak aka ak aka ak
REM Nach rechts verschieben
GOSUB 4319: REM 'Bitte warten'
FOR I=B TOLG-L1
DEC = PEEK (I + ST)
GOSUB 132®: REM DEZ -> BIN
FOR J = ® TO WI
AR(WI — J + 1,I) = AR(WI - J,I): REM nach rechts
NEXT
AR(®,I) = AR(WI + 1,I): REM rechte Reihe wird linke
Reihe
Peeker 7/85
2200 GOSUB 1429: REM BIN -> DEZ
221® POKE I + ST,DEC: REM Geändertes Array in Speicher
schreiben
2220 NEXT
2230 A$ = "N": GOTO 2490
230 RIM 3a akeakealealeakealeakealeale lee eek aaa
231® REM Alle Zeichen invertieren
232® GOSUB 4319: REM "Bitte warten'
23308 FOR I = ® TO FL
2340 NR = PEEK (I + FS)
2350 NR = 255 - NR: REM invertieren
2360 POKE I + FS,NR: REM In Speicher schreiben
2378 NEXT
2380 A$ = "N": GOTO 2499: REM Neustart
24Q®® REM aaa akakakakakaleaeaiakakieaiealealeaieaikaiklealealealeaeialaaealeaekaaaeaeeeaaak
241® REM Kommandoeingabe
2420 X = HS:Y = VS: REM Cursor-Position
2430 GOSUB 3629: REM CS$ Cursor setzen
2440 POKE — 16368,®: REM Keyboard-Strobe zurücksetzen
2450 GOSUB 421@: VTAB VW: HTAB HW: GET A$
2460 IF A$ = CHR$ (86) THEN 2129: REM Verschieben nach
rechts
2470 IF A$ = CHR$ (8) AND ST - IV < Rl THEN PRINT CHR$
(7);: GOTO 2449: REM Bereichskontrolle
2480 IF A$ = CHR$ (21) AND ST + IV > R2 THEN PRINT CHR$
(7);: GOTO 2449: REM Bereichskontrolle
2490 IF A$ = CHR$ (8) OR A$ = CHR$ (21) THEN GOSUB 2929:
REM Adreßfenster löschen
2500 IF A$ = "W" AND W = 1 THEN GOSUB 2929: REM
Adreßfenster löschen
2510 IF A$ = CHR$ (8) OR A$ = CHR$ (21) OR A$ = CHR$ (32)
OR A$ = "W" OR A$ = "N" THEN GOSUB 2829: REM Fenster
mit Inhalten löschen
2529 A$ = "L" THEN 4929: REM Laden
2530 A$ = "S" THEN 4129: REM Speichern
2549 A$ = "I" THEN 3429: REM Cursor hoch
2559 "J" THEN 3449: REM Cursor links
2569 "K'" THEN 3460: REM Cursor rechts
2578 "M'' THEN 3489: REM Cursor abwärts
2580 IF CHR$ (32) THEN AR(X — HS,Y - VS) = NOT AR(X -
HS,Y - VS): GOTO 243®: REM Leertaste = konvertieren
2596 IF A$ = CHR$ (13) THEN GOSUB 4319: GOTO 3329: REM
<RETURN>, in Speicher schreiben
2600 IF A$ = CHR$ (84) THEN 3929: REM Test 8® Zeichen
261® IF A$ = "N" THEN GOSUB 4319: GOSUB 1629: GOSUB 2929:
GOTO 2429: REM Neustart
2620 IF A$ = CHR$ (9) THEN 2320: REM Alle Zeichen
invertieren
2630 IF A$ = CHR$ (8) THEN GOSUB 4319:ST = ST — IV: GOSUB
1629: GOSUB 2929: GOSUB 4559: GOTO 2429: REM
Vorhergehende Seite
2640 IF A$ = CHR$ (21) THEN GOSUB 4319:ST = ST + IV: GOSUB
1629: GOSUB 2929: GOSUB 4559: GOTO 2429: REM Nächste
Seite
2650 IF A$ = "Q" THEN RETURN : REM Programm beenden
2660 IF A$ = "W" THEN W = 1: GOSUB 1629: GOSUB 1829:W =
®:WW = 1: HTAB HW: VTAB VW: GOTO 2449: REM Werte
anzeigen
2678 IF (A$ < "DB" OR A$ > "9") AND (A$ < "A" OR A$ > "F")
THEN PRINT CHR$ (7);: GOSUB 4219: GOTO 244: REM
Eingabe ist Hex-Zahl
2680 GOTO 3029: REM Neue Hex-Adresse
2800 RIM 3akeakealtalealealeaeakakalale leerer ea ale
2818 REM Fenster mit Inhalt löschen
2820 POKE 33,3: POKE 32,HC - 1: POKE 34,VS — 1: POKE 35,21:
HOME : TEXT : RETURN
2900 REM aka aaleakak aka aealeake alle ale ale ale ak ak alle ale ale ak ak aaa
291® REM Fenster mit Adressen löschen
2928 POKE 33,5: POKE 32,HA - 1: POKE 34,VS - 2: POKE 35,21
2930 HOME : TEXT :WW = ®: RETURN
30®® REM 3 akaalakalalkakaieakkaleaieaieataleaieak ale ale aleale ale akalealeaikalealeae alla
301® REM Neue Hex-Adresse
3020 GOSUB 4219: PRINT "NEUE HEX-ADRESSE: $";
3030 B$ = A$: GOTO 3139
3040 GET A$
3050 IF A$ = CHR$ (8) AND B$ = "" THEN PRINT CHR$ (7);:
GOTO 3949
3060 IF A$ = CHR$ (8) AND LEN (B$) = 1 THEN B$ = "": GOTO
313®
3070 IF A$ = CHR$ (8) THEN B$ = LEFT$ (B$, LEN (B$) - 1):
GOTO 3139
3088 IF A$ = CHR$ (13) THEN 3159
3096 IF (A$ < "DB" OR A$ > "9Y9") AND (A$ < "A" OR A$ > "F")
THEN PRINT CHR$ (7);: GOTO 3949
3100 IF LEN (B$) < 5 THEN B$ = B$ + A$: PRINT A$;: GOTO
3949
311® PRINT CHR$ (7);: GOTO 3949
312® REM 3ekakalalkakakakakak
Peeker 7/85
3139
3149
3159
3169
3179
3180
319
3209
3219
3229
3239
3309
3319
3329
3339
3400
3419
3429
3439
3449
3459
3460
3470
3480
3499
3600
3619
3629
3630
3640
3659
3709
371
3720
3739
3749
3759
3809
3819
3900
3919
3929
3939
3949
3959
3960
3970
3989
EUl]))
4019
4020
4039
4040
4059
4060
4079
A100
4119
4129
4130
4149
4159
4169
4179
4200
4219
4309
4310
4409
4419
4429
4439
4449
4459
4460
4470
Technik 94
VTAB 22: HTAB 19: CALL - 868: PRINT B$;: GOTO 3949
REM 3a aleaea aka aka
IF B$ = "" THEN 2449: REM Kommandoeingabe
GOSUB 431®:H$ = B$: GOSUB 1229: REM HEX -> DEZ
Umwandlung
IF DEC < Rl OR DEC > R2 THEN PRINT CHR$ (7);: GOTO
3230: REM Bereichskontrolle
ST = DEC
GOSUB 2929: GOSUB 2829: REM Fenster löschen
GOSUB 162®: REM Adresse ausgeben
GOSUB 2®29: REM Bitmuster-Fenster neu schreiben
GOSUB 4219: REM Zeile 22 und 23 löschen
GOTO 2429: REM Kommandoeingabe
REEM 3 ak ak ale ale ale ale ak ale ale ak ak ae ale ak ak ale ale ak a ae ae ak aaa ak ae a
REM Array in Speicher schreiben
FOR I = ® TO LG — 1: GOSUB 1429: POKE ST + I,DEC: NEXT
GOTO 2449: REM Kommandoeingabe
REM 3 ale ale ale akt ak ak ak ak a a ale ale ak ak ak ae aaa aaa
REM I J KM Editiermodus
IF Y = VS THEN PRINT CHR$ (7);: GOTO 2459
GOSUB 3720:Y = Y — 1: GOSUB 3629: GOTO 2459
IF X = HS THEN PRINT CHR$ (7);: GOTO 245@
GOSUB 3728:X = X - 1: GOSUB 3629: GOTO 2459
IF X = HS + WI THEN PRINT CHR$ (7);: GOTO 2459
GOSUB 3720:X = X + 1: GOSUB 3629: GOTO 2459
IF Y= VS + LG -— 1 THEN PRINT CHR$ (7);: GOTO 2459
GOSUB 3720:Y = Y + 1: GOSUB 3629: GOTO 2459
REM 3% ale ale ale ak ale ale ak ak a ak ak ale eat ak ak a ae ae ale ae ak aaa aaa
REM CS$-Cursor setzen
VTAB Y: HTAB X: GOSUB 381®
IF CS ® THEN PRINT CS$
IF CS 1 THEN INVERSE : PRINT CS$: NORMAL
RETURN
REM 3a ale aleale lea ak ak ak ae ee ale elek ak ak ak eek
REM Cursor löschen
VTAB Y: HTAB X: GOSUB 381
IF CS = ® THEN PRINT " "
IF CS = 1 THEN INVERSE : PRINT " ": NORMAL
RETURN
REEM ara ak ae ale ale alle ak ale aka ae ae elek aka a aaa
CS = AR(X — HS,Y - VS): RETURN
REEM 3a ale ale ale ak ale ak aka ae ae ale ae ale ale aa a ak a a elek
REM 8ß-Zeichen-Test
PRINT : PRINT D$"PR#3": PRINT
PRINT CHR$ (12);
PRINT "TI(NVERSE DARSTELLUNG TN(ORMAL TQ(UITTIEREN"
GET A$: PRINT A$;: IF A$ = CHR$ (17) THEN PRINT
CHR$ (26)"1";: GOTO 2449: REM Test 88 Zeichen beenden
IF A$ = CHR$ (14) THEN PRINT CHR$ (26)"2";: REM
Normale Anzeige
IF A$ = CHR$ (9) THEN PRINT CHR$ (26)"3";: REM Inverse
Anzeige
GOTO 3959
REEM 3a ak ale ale ale ale aka ale ak ae ae ae ale ale ale ale a a ae ee ae aa ae ae a aaa
REM File laden
GOSUB 421®: PRINT "FILE-NAME LADEN? ";: INPUT "";F$
IF F$ = "" THEN 4970
GOSUB 4319
PRINT D$; "BLOAD";F$;",A$";FS$
GOSUB 2829: GOSUB 2929: GOSUB 1629: GOSUB 2929: GOSUB
4210: GOTO 2429
GOSUB. 4219: GOTO 2449
REEM 3 ak ak ale ae ae ale ale ale ale ak ak ae ae ae eek ak ae ee ae a aaa
REM File speichern
GOSUB 4219: PRINT "FILE-NAME SPEICHERN? ": PRINT
"VORGABE: ";F$;: VTAB 22: HTAB 21: INPUT "";FF$
IF FF$ < > "" THEN F$ = FF$
IF FF$ = "" THEN GOSUB 421@: VTAB 22: PRINT "SPEICHERT
":F$: IF F$ = "" THEN 2449
GOSUB 4319
PRINT D$; '"BSAVE" ;F$",A$";FS$" ‚L$";FL$
GOSUB 4219: GOTO 2449
REEM 3 ak ale ale ak ale ale ae ale ale ak ale aka ae elek ae ee aaa
POKE 35,23: VTAB 22: HTAB 1: CALL - 958: POKE 35,24:
RETURN : REM 'Bitte warten' löschen
RREEM aaa ae ale eek ak ae ae ae ae ae eek ee eek ee
VTAB 23: HTAB 1: CALL - 868: INVERSE : PRINT " BITTE
WARTEN ";: NORMAL : VTAB 22: PRINT CHR$ (1): RETURN
REM 3% aleale ale ale ak ale ae ae ae ale ale ak ak ae ae ae ale ale a ak ae ea a aaa aaa
REM Hauptmenü
TEXT : HOME : INVERSE
HTAB HA: PRINT "ADRESSE";
HTAB HC: PRINT "INHALT"; : HTAB HS — 1: PRINT
"BITMUSTER" ;
HTAB HS + 11: PRINT "KOMMANDOS": NORMAL
VTAB VS — 1: HTAB HS — 1: FOR I = ß TO WI + 2: PRINT
R$;: NEXT
VTAB VS + LG: HTAB HS — 1: FOR I = ® TO WI + 2: PRINT
R$;: NEXT
51
VTAB VS: FOR I 1 TO LG: HTAB HS - 1: PRINT R$: NEXT
VTAB VS: FOR I = 1 TO LG: HTAB HS + WI + 1: PRINT R$:
NEXT
VTAB 3: RESTORE : FOR I = 1 TO DT: HTAB HS + 11: READ
A$: PRINT A$: NEXT
DATA (1.BUCHSTA-),BE EINGEBEN), ‚LADEN, SPEICHERN, #
HEX-ADR,<- ->,,LEERTASTE,I JK
M, NEUSTART , <RETURN>, ‚, WERTEAUSGABE, VERSCHIEBEN, TINVERTIE
REN,TEST 8® Z, ‚QUITTIEREN
VTAB 24: HTAB 1: PRINT "FS$=";FS$;: HTAB 14: PRINT
"FL$=";FL$;
HTAB 26: PRINT "LG=";LG;: HTAB 35: PRINT "IV=";IV;
VTAB VW: HTAB HW
RETURN
REM KK EEE
REM Initialisierung
WI = 7: REM Fensterbreite für Bitmuster
DIM AR(WI + 2,15): REM Editier-Array
DT 19: REM Anzahl der DATA-Statements
HA 1:HC = 9:HS = 17: REM Startpositionen horizontal
= 16:LG = 9: REM Intervall: Anzeigebereich
R1$ = "5000":R2$ = "6FFF": REM Eingabebereich
VS = 12 - INT (LG / 2): REM Startposition vertikal
HW = 38:VW = 1: REM Cursor Warteposition
FL$ = "100": REM File-Länge
D$ = CHR$ (A)
R$ = "x": REM Rahmen des Bitmuster-Fensters
cS$ = "+": REM Editier-Cursor
FS$ = "5ß@0": REM Ab hier wird File in Speicher
geladen
GOSUB 4929: REM HEX -> DEZ Umwandlung der Variablen
GOSUB 4429: REM Menü
GOSUB 2420: REM Kommandoeingabe
VTAB 23: END
REN ee
REM HEX -> DEZ Umwandlung der Variablen
H$ = FS$: GOSUB 1229:FS = DEC
H$ FL$: GOSUB 1220:FL = DEC
H$ = R1$: GOSUB 1220:Rl = DEC
H$ = R2$: GOSUB 1229:R2 = DEC
ST = FS: REM Startadresse
RETURN
Nachtrag zum Pascal-RAM-Disk-Driver MACRO LOAD
LDY #00
Unsere Setzerei hat bei dem Beitrag RAM-Disk-Driver für Pascal 1.1, Peeker 6/85, 1 LDA ...
Seite 48 einen Teil des Listings INIT.PASCAL.SOURCE weggeschnitten. Nach dem nn m
Macro PUSH fehlt die Macro-Definition LOAD. Es sind daher folgende Zeilen einzu- CPY #%3
fügen: ns
.ENDM
Niederlassung Deutschland
Wellen Sie mit Ihrem MAGINTOSH
LIMITED
grafisch arbeiten?
ESLEUEN GIRL
STUTLERLEILICE
rechender
Georg-Brauchle-Ring 68
D-8000 München 50
Telefon 089/1415077
Telex 5214793
Peeker 7/85
EEKER 44
MAGAZIN FÜR APPLE-COMPUTER
® AUFTRAG FÜR KLEINANZEIGEN
Bitte veröffentlichen Sie in der nächsterreichbaren Ausgabe nachstehenden
Text unter folgender Rubrik:
[] suche Hardware [] suche Software [] Tausch UL] Verschiedenes
[] biete Hardware [] biete Software D] Kontakte U Chiffre
Bitte jeweils 32 Buchstaben pro Zeile-einschließlich Satzzeichen und Wort-
zwischenräume. Bitte Absender nicht vergessen.
Chiffregebühr DM 6,— zuzügl. MwSt.
| MAGAZIN FÜR APPLE-COMPUTER
Zu der in »peeker«, Heft ,‚ Seite
[] Anzeige [| Produktbesprechung
erschienenen
über
bitte ich um detaillierte Information.
Ich wünsche [| Prospekt, Datenblatt [| Preisliste | schriftliches Angebot [| tel. Rückruf
Produkt und Bestellnummer aDM |gesamt DM
gebe ich neben-
stehende Bestellung
unter Anerkennung
Ihrer in der Anzeige
genannten Liefer- und
Zahlungsbedingungen
auf.
Verkaufe neuwertigen Typenrad-
drucker mit Apple-Interface.
Preis auf Anfrage. Tel. 007
Unterschrift (für Jugendliche unter 18 Jahren der Erziehungsberechtigte)
DEEKER 44
AGAZIN FÜR APPLE-COMPUTER
Schreiben Sie uns, wenn Sie Fragen, Ergänzungen oder Anregungen zu
Aufsätzen in »peeker« haben:
Neu im Angebot: Professionelle,
separate Tastatur für Apple Il
plus 16 Funktionstasten und sepa-
ratem Ziffernblock.
Fa. Keyboard & Co.
a wa ANTWORTKARTE
Beruf a
:O _
Ä Wohnort
Ö PLZ peeker-Börse
Bitte veröffentlichen Sie den um- Anzeigen-Service
Se stehenden Text von____Zeilen
© a DM in der nächsterreich- Dr. Alfred Hüthig Verlag
© baren Ausgabe von »peeker«
Q. Bei Angeboten: Ich bestätige, daß ich alle Postfach 1 Ö 28 69
Rechte an den angebotenen Sachen besitze j
6900 Heidelberg 1
n Unterschrift
® Karte bitte vollständig ausfüllen
- Vorname, Name
L POSTKARTE
> Firma
&” Straße
Telefon mit Vorwahl
E; PLZ/Ort
Ei Karte bitte vollständig ausfüllen
we POSTKARTE
O Vorname, Name
= Firma
O peeker
r— Redaktion
ge Postfach 1028 69
PLZ/Ort | 6900 Heidelberg 1
Telefon mit Vorwahl
7
Produkf-
Karte
Wünschen Sie
weitere Informationen
zu einem der im Heft
vorgestellten
Produkte ?
Nichts einfacher als
das.
Produkt-Karte aus-
füllen, mit 60-Pfennig
frankieren und
absenden.
Vorher aber nicht
vergessen:
kreuzen Sie an,
welchen Informations-
wunsch Sie haben.
Damit erleichtern Sie
dem Hersteller
eine gezielte Beant-
wortung Ihrer Anfrage.
Zum Schluß tragen
Sie auf der Rück-
seite die genaue
Anschrift des
Inserenten/Herstellers
und Ihre vollständige
Firmenanschrift ein.
pt MAGAZIN FÜR APPLE-COMPUTER
Peeker-Sammeldisketten
Einzelbezug DM 28,—
Fortsetzungsbezug DM 20,—
(Jederzeit kündbar, jedoch mindestens
6 Disketten)
(* = nur auf Diskette, nicht im Peeker
gelistet! Seitenangaben beziehen sich
auf Beginn des Listings)
Hüthig Software Service
Postfach 102869 - 6900 Heidelberg 1
Disk+ 1
(Heft 1+2, 1984)
T.DISASSEMBLER.65C02 (1/84, S. 15)
DISASSEMBLER.65C02
T.ACCEL.WAIT (1/84, S. 22)
ACCEL.WAIT
T.ACCEL.BOOT
ACCEL.BOOT
ACCEL.LC.KOPIERER
T.ACCEL.LC.KOPIE
ACCEL.LC.KOPIE
T.ACCEL.ROM.KOPIE1
ACCEL.ROM.KOPIE1
T.ACCEL.ROM.KOPIE2
ACCEL.ROM.KOPIE2
TURTLE.GRAFIK.MIT.REMS (1/84, S.29)
TURTLE.GRAFIK.OHNE.REMS *
DOUBLE.LORES.SOFTSWITCH.DEMO
(1/84, S. 37)
DOUBLE.LORES.APPLESOFT.DEMO
AMPER.DOUBLE.LORES.DEMO
T.AMPER.DOUBLE.LORES
AMPER.DOUBLE.LORES
T.DOUBLE.LORES
DOUBLE.LORES
HIRES (1/84, S. 41)
T.PRINTHIRES
PRINTHIRES
DHGR.APSOFT.DEMO (2/84, S. 30)
AMPER.DOUBLE.HIRES.BAS
AMPER.DOUBLE.HIRES
T.AMPER.DOUBLE.HIRES
DHGR.LINEPLOTTER
INSTRING.TEST (2/84, S. 43)
INSTRING.OBJ
T.INSTRING.OBJ
INSTRING.LISA.SOURCE
LOESCHEN.EINES.ARRAYS
(2/84, S. 52)
ULTRATERM.ENGLISCH * (2/84, S. 60)
ULTRATERM.DEUTSCH *
PRIMZAHLEN.OVERMEYER *
(2/84, S. 70)
PRIM.OBJO *
PRIM.OBJ1 *
PRIM.TEST *
PRIM.TOOLKIT.SOURCE *
Disk #2
(Heft 1-2, 1985, DOS-Format)
T.RAMDISKLC (1-2/85, S. 14)
RAMDISKLC
T.IBS.RAMDISKDRIVER (1-2/85, S.20)
IBS.RAMDISKDRIVER
Peeker 7/85
T.AP20.RAMDISKTEST
AP20.RAMDISKTEST
T.QUICKCOPY (1-2/85, S. 26)
QUICKCOPY
QUICKCOPY.PUFFER
PRODOS.COPYA
T.PRODOS.COPYOBJ *
PRODOS.COPYOBJ
PRODOS.PATCH (1-2/85, S. 31)
T.APPLESOFT.FRE (1-2/85, S. 36)
T.LC.FRE
LC.FRE
FRE.TEST
T.RAM.FRE *
RAM:FRE
T.SCHIRMDISK (1-2/85, S. 44)
SCHIRMDISK.LISA.SOURCE
SCHIRMDISK
T.VIDEXT
VIDEXT.LISA.SOURCE
VIDEXT
GETPAS (1-2/85, S. 70)
T.GETPAS.ASS *
GETPAS.ASS
GETDOS.PASCAL.SOURCE
COPYDUPDIR.PASCAL.SOURCE
PRODOS.EDITOR.MACROS
(1-2/85, S. 86)
Disk #3
(Heft 1-2, 1985, CP/M-Format)
STEUER.84 (1-2/85, S. 47)
PASS.BAS
MENUE.BAS
HELP.BAS *
Disk #4
(Heft 3 + 4, 1985)
TESTGENERATOR (3/85, S. 26)
SAETZE
BAHNFAHRT *
ZU *
TUN.UND.SOLLEN *
IRGEND *
MULTIPRECISION (3/85, S. 32)
T.WS.TRANSFER (3/85, S. 36)
WS.TRANSFER
T.WS.TRANSFER.2 *
WS.TRANSFER.2 *
GETCPM
PRIM.0.SC.SOURCE (3/85, S. 62)
PRIM.O.BIN
PRIM.1.5SC.SOURCE
PRIM.1.BIN
PRIM.FP
ACCELERATOR.ABSTELLEN
(3/85, S. 66)
T.WILDCARD.TEST * (3/85, S. 72)
WILDCARD.TESTI *
T.WILDCARD.TEST2 *
WILDCARD.TEST2 *
XPLOT.DEMO (4/85, S. 18)
XPLOT.ROUTINE
T.xPLOT.ROUTINE
MENUE.GENERATOR (4/85, S. 22)
T.MACROS.65C02 (4/85, S. 31)
TERMINAL (4/85, S.36)
TERMINAL.B
T.TERMINAL.B
CAT.ARRAY (4/85, S. 44)
CAT.SAVER
EINTRAG.SUCHER
EINTRAG.ANALYSE
PRODOS.READER
T.PRODOS.READER.OBJ
PRODOS.READER.OBJ
MOUSESTUFF.PASCAL.SOURCE
(4/85, S. 51)
MOUSE.ASS.PASCAL.SOURCE
TESTMOUSE.PASCAL.SOURCE
DRAWMOUSE.PASCAL.SOURCE
INALL.DATA (4/85, S. 70)
SCREEN80.DATA (4/85, S. 33)
SCREEN80.SAVER (4/85, S. 76)
Disk #5
(Heft 5, 1985, DOS-Format)
T.FM.BSP (5/85, S. 9)
FM.BSP
T.SLOTRAMDISK (5/85, S. 13)
SLOTRAMDISK
SLOTRAMDISK.HELLO
PLOT.2.O (5/85, S. 20)
T.PLOT.B
PLOT.B
PLOT.PROTECTOR
T.CONVERTS560 (5/85, S. 26)
CONVERT560
CONVERT560.DEMO
T.EDA (5/85, S. 33)
EDA
TRANSCEND.PASCAL.SOURCE
(5/85, S. 36)
T.BLOCKTRACER (5/85, S. 51)
BLOCKTRACER
T.BLOCKTRACER1
BLOCKTRACERI1
FORMAT.LC (5/85, S. 56)
FORMAT.LC.START
T.DISKDRIVER.DEMO
DISKDRIVER.DEMO
RANDOM.DEMO (5/85, S. 69)
COLUMN80.DEMO
SUPERDUMP.EPSON (6/85!)
SUPERDUMP.IMAGEWRITER
SUPERDUMP.BILD
T.SUPERDUMP
SUPERDUMP
EPSON
IMAGEWRITER
Disk #6
HELLO
ASMDIV
CURSOR1
T.CURSOR1
CURSOR2
T.CURSOR2
LINIE
T.LINIE
VIERECK
T.VIERECK
BOX
T.BOX
HINTERGRUND
T.HINTERGRUND
PAGE.SWAP
T.PAGE.SWAP
WANDERNDER.STRICH
KOMPRESSOR.DEMO
KREIS.1
KREIS.2
KREIS.3
FLIPPER
T.FLIPPER
KOMPRESSOR
T.KOMPRESSOR
OLYMPIA
T.OLYMPIA
FOURIER.MAIN
FOURIER.SYN
FOURIER.SPEC
AS.ERWEITERUNG
T.AS.ERWEITERUNG
AS.ERW.PROSTART
AS.ERW.PRO
T.AS.ERW.PRO
INSTALL.PASCAL.SOURCE
RAMDISK94.PASCAL.SOURCE
INIT.PASCAL.SOURCE
RAMDISK.INIT.DOS
AUXDRIVER
T.AUXDRIVER
MOVEDRIVER
T.MOVEDRIVER
RAMDISK.FORMATTER
T.RAMDISK.FORMATTER
SOLITAIRE.START
SOLITAIRE
SOLITAIRE.B
T.SOLITAIRE.B
55
Karl Bolle
Computer-Fibel
ö., völlig neubearbeitete
Computer-Fibel
Von Karl Bolle 3., völlig neubearbeitete Auflage. 1985. 194 Seiten.
Kartoniert. DM 26,-. ISBN 3-7685-6784-2
Welche organisatorischen Probleme gibt es bei der Computerinstal-
lation am Arbeitsplatz ? Was ist Hardware, Software, Orgware ? Wie
erstellt man ein Programm ? Was ist Belegverarbeitung ? Wie lauten
die zehn Gebote für den Einstieg in die EDV ? Diese und viele andere
Fragen beantwortet die Computer-Fibel auf prägnante, unterhalt-
same und anschauliche Weise. Sie versetzt den Leser in die Lage,
sich innerhalb kürzester Zeit mit dem Computer-Basiswissen vertraut
zu machen und die Grundzüge der Programmierung zu erlernen.
Programmier-
sprache »C«
Esperanto der Software
R. v.Decker's Verlag, G. Schenck
Von Martin Bergmann, Hans-Dieter Litke,
Paul G. Maciejewski, Adelheid Kröz,
Dieses Buch enthält eine detaillierte Darstellung der Pro-
grammiersprache »C«. Es wendet sich an Leser, die über
Grundkenntnisse der Informatik und über Programmier-
erfahrung verfügen, und ist damit für Hobbyinformatiker,
Studenten naturwissenschafticher und technischer
B.-D. Like /M. Bergmann
P. Maciajewski/ A. Kröz
Pro
er-
8 n0«
Esperanto der Software
Didaktisch - systematische Darstellung
für den Anfänger und Anwender
Fachrichtungen und für professionelle Software-Entwick-
ler gleichermaßen geeignet.
Programmierneulingen wird empfohlen, sich zunächst mit
einer einfacheren höheren Programmiersprache wie z.B.
Pascal oder Basic zu beschäftigen.
Didaktisch-systematische
Darstellung für den
Anfänger und Anwender
1985. Xll, 186 Seiten. Kartoniert.
R.v. Decker's Verlag, G. Schenck
DM 38,-. ISBN 3-7685-6484-3
£
Cobol-Fibel _...
Cobol-Fibel
7., neubearbeitete Auflage
Von Karl Bolle 7., neubearbeitete Auflage. 1985.
VIN, 267 Seiten. Kartoniert. DM 32,-
ISBN 3-7685-6684-6
R. v. Decker's
Verlag, G. Schenck
Im Weiher 10 Autor dieses Buches ist ein erfahrener Programmier- sr
6900 Heidelberg 1 lehrer, der hier in einer allen Interessierten leicht
zugänglichen Darstellung in ein umfangreiches, ES gS
scheinbar kompliziertes Gebiet einführt. An kom- | N
pletten Programmmbeispielen wird die Systematik ||
einer Programmiersprache deutlich, die für fast alle
elektronischen Datenverarbeitungsanlagen gültig ist. Dem mit R.u.Deoker's Verlag, G. Schenk |}
dem verstärkten Einsatz kleinerer Computer gegebenen Trend |
zur Bildschirmverarbeitung wird in dieser 7. Auflage durch zusätzliche Einfügung einiger Bild-
schirmprogramme Rechnung getragen. Ein bewährtes Werk, das sich ebenso zum Selbst-
studium wie als unterrichtsbegleitendes Matenal eignet.
@
Basic-Fibel
Von Professor Gary 6. Bitter und
Wilson Y. Gateley.
Aus dem Amerikanischen übersetzt
und bearbeitet von Karl Bolle.
2. Auflage 1980. XIV, 154 Seiten.
Kartoniert. DM 24,-
ISBN 3-7685-2979-7
L
Diese leicht verständliche Einführung in die Programmier- /
sprache BASIC eignet sich vorzüglich zum Selbststudium.
Einige wenige Stunden genügen, um sich speziellen Pro-
blemen ohne Schwierigkeiten zuwenden zu können. Von
BASIC gibt es viele Versionen, wenngleich diese Program-
miersprache bei den unterschiedlichen Systemen schon
einen weitgehend einheitlichen Stand aufweist. Die Grund-
lagen und gemeinsamen Sprachelemente von BASIC wer-
den so vermittelt, daß der Lernende die Besonderheiten
einer BASIC-Version ohne Probleme sich zu eigen machen
kann.
R.v. Decker’s
FACHBÜCHEREI
LBITTO SA ERTTO oe
Basic Fibe
2. Auflage
R.v. Decker’s Verlag
G. Schenck
Das vorliegende Buch ist für das Selbststudium von „Busi-
ness BASIC" konzipiert worden. Business BASIC ist eine
Mischung von FORTRAN, der verbreitetsten technisch-
Business Basic
R.v. Decker’s
FACHBÜCHEREI
Von Karl Bolle.
1984. Yıll, 223 Seiten. Kartoniert.
DM 34,-
ISBN 3-7685-1283-5
\ Karl Bolle
R.v. Decker’s Verlag
G.Schenck
wissenschaftlichen Sprache und COBOL, der bekannte-
sten kommerziellen Programmiersprache. Business
BASIC wurde speziell für die Dialogverarbeitung mit Mini-
Computern und Büro-Computersystemen erfunden und
weiterentwickelt. Der gesamte Sprachschatz kann mit
Hilfe dieses Werkes, selbst von Anfänger, in etwa zwei
Wochen erlemt werden.
PN
Wordstar mit allen
FX-80-Schriftarten
von Dipl.-Ing. H. A. Rohrbacher
Mit Hilfe einfacher Patch-Routinen wird
gezeigt, wie man die von den Epson-
Druckern FX-80 und FX-100 angebote-
nen Schriftarten Elite, Italic (= kursiv),
Proportional und deren mögliche Mi-
schungen für den Wordstar 3.0 an-
spricht und die Bildschirmdarstellung
mit den deutschen Sonderzeichen er-
reicht.
Ohne Zweifel zählt Wordstar zu den welt-
weit bekanntesten Textverarbeitungs-Sy-
stemen, wobei die Wordstar-Version 3.0
gleichzeitig eine besonders weite Verbrei-
tung erreicht hat und über eine Reihe will-
kommener Änderungsmöglichkeiten für
eine alternative Druckersteuerung oder
Bildschirmdarstellung verfügt. Wer hätte
nicht gerne seinen Text durch Kursiv- oder
Eliteschrift hervorgehoben, beides ge-
mischt, oder die Proportionalschrift für ei-
ne optisch ausgeglichene Textdarstellung
benutzt?
Die weit verbreitete Meinung, man brau-
che für abweichende Schriftarten jeweils
eine individuell modifizierte WS-Version,
ist irrig. Man kann sehr wohl die vom FX-
80 angebotenen Schriftarten Pica (10 Zei-
chen/Zoll), Elite („Perl“, 12 Zeichen/Zoll),
Italic (= Kursiv) und Proportional (unter-
schiedliche Dickten = Buchstabenbreiten)
in einer einzigen, einmal installierten WS-
Version vereinen, miteinander mischen,
dehnen, komprimieren, indizieren (=
hoch- und tiefstellen), fett oder doppelt
drucken, da der größte Teil dieser Mög-
lichkeiten über ESC-Sequenzen aufrufbar
ist. Die einzelnen WS-Befehle müssen da-
her lediglich den FX-80-ESC-Befehlen
entsprechen.
Peeker 7/85
Bild 1
Die WS-Anpassung an diese Fähigkeiten
wird durch ein „Patchen“ bewirkt (wört-
lich: „am Zeug flicken“), das auch von
einem Ungeübten bei strikter Einhaltung
der Vorgehensweise durchgeführt werden
kann. Ziel der Bemühungen ist es also,
eine Wordstar-Version zu erstellen, mit
der beispielsweise ein in Bild 1 gezeigter
Misch-Text ohne Diskettenwechsel oder
Collagetrick ausgedruckt werden kann.
Die Vorbereitung
Es wird davon ausgegangen, daß die
Wordstar-Version 3.0 lauffähig, also auf
den Apple Il grundsätzlich angepaßt vor-
liegt. Weiterhin beziehen sich die folgen-
den Änderungen auf die Verwendung ei-
nes Epson-Druckers vom Typ FX-80 oder
FX-100. Mit einigen Erweiterungen wird
auch der Druck-Computer LQ-1500 und
mit Einschränkungen der Matrixdrucker
RX-80 berücksichtigt.
Der erste Schritt beginnt damit, daß man
sich eine WS-Kopie erstellt, wobei nur die
drei Files WS.COM, WSMSGS.OVR und
WSOVLY1.OVR vorhanden sein sollen.
Alle drei gehören zusammen. Sollten beim
Kopieren noch weitere Dateien übertragen
worden sein, so werden diese gelöscht
(„ERA“ unter CP/M oder „Y“ unter WS).
Nun wird die Befehlsdatei INSTALL.COM,
am besten mittels „PIP. COM“, zusätzlich
auf die Diskette kopiert. Es schadet nie,
von der so entstandenen Diskette wieder-
um eine Kopie herzustellen, mit der dann
weitergearbeitet werden kann, wenn die
Erstversion aus irgendeinem Grund defekt
geworden sein sollte.
57
Das Installations-Programm
Die für den FX-80 vorzunehmenden „Pat-
ches“ werden ausschließlich mit Hilfe des
INSTALL.COM-Programms durchgeführt.
Man beginnt damit, daß der auf der vorbe-
reiteten Diskette enthaltene WS gestartet
wird. Aus dem Haupt-Menue wählt man
„R“, wonach sich WS mit „COMMAND?“
meldet.
Nun gibt man „INSTALL“ (ohne „.COM“)
ein und startet damit das Installationspro-
gramm. Nach einigen Sekunden wird man
gefragt:
—- Do you want a normal first time IN-
STALLation of WordStar?
Da das sicher nicht der Fall ist (sonst wäre
der WS bisher nicht gelaufen), antwortet
man mit „N“ für No.
Im nachfolgenden Menue werden die Ant-
wortmöglichkeiten A, B, C und D angebo-
ten; von diesen wählt man „D“.
Danach folgt die Frage:
- Filename of Wordstar to modify?
Hier ist der Name der vorliegenden
WS.COM-DateiÄ, nämlich „WS“ (ohne
„.COM“) einzugeben und mit Return ab-
zuschließen.
Es folgen insgesamt acht weitere Fragen,
die alle nacheinander mit Return beant-
wortet werden können, wenn — wie ange-
nommen wird — eine 80-Zeichenkarte mit
dem Videx-Standard und ein Epson-Inter-
face (oder kompatibles) verwendet wer-
den. Die 80-Zeichenkarte wird im Slot 3,
die Interface-Karte für den Drucker im Slot
1 erwartet.
Nach dem achten Return fragt das Installa-
tionsprogramm:
— Are the modifications to wordstar now
complete? ok (Y/N):
Da wir erst jetzt beginnen wollen, die „Pat-
ches“ vorzunehmen, muß an dieser Stelle
unbedingt mit „N“ geantwortet werden.
Als Folge davon ist man auf einer Arbeits-
ebene angekommen, die es erlaubt, die
einzelnen Speicherzellen nach Wunsch zu
ändern. Es wird angeboten:
- Location to be changed (0 = End)
Zum Aufruf des Speicherplatzes kann ent-
weder die hexadezimale Adreßnummer
eingegeben oder der Label-Name ver-
wendet werden. Letzterer muß in jedem
Fall immer mit einem Doppelpunkt (:) en-
den. Will man unterschiedliche WS-Ver-
sionen patchen, so empfiehlt es sich, die
Label-Namen zu verwenden, da sich diese
nie ändern, in einigen Fällen aber die rele-
vanten Speicheradressen von Version zu
Version andere Werte angenommen ha-
ben können. Wir bleiben beim WS 3.0 und
müssen zunächst einige Unarten von WS
58
bereinigen. Hierzu muß man wissen, daß
bei jeder Installation zwei wichtige Dinge
automatisch auf den US-Standard zurück-
gesetzt werden, die man hierzulande nicht
sonderlich schätzt:
1. Die auf dem Bildschirm bisher bekann-
ten deutschen Sonderzeichen, also die
Umlaute, das B und das $-Zeichen, er-
scheinen ohne Zutun wieder im ASCII-
Format als {, }, [, ], @ und \\, und wer
seinen Wordstar bisher nicht anders kann-
te, hat hier Gelegenheit zur Umstellung
auf den deutschen Bildschirm. (Anm. der
Red.: Diese „Unart“ existiert nicht bei 80-
Zeichenkarten mit Deutsch als erstem Zei-
chensatz.)
2. Der WS wird langatmig und führt große
Warteschleifen zwischen den Ctrl-Kom-
mandos und der Menue-Anzeige oder für
die Anzeige des Ctrl-Zeichens ein, was
die Geduld des flinken WS-Benutzers nur
unnötig strapaziert.
An dieser Stelle sind daher vorab zwei
Anmerkungen angebracht: Einmal werden
deutsche Verhältnisse wiederhergestellt,
indem im Label „TRMINI“ = ab Speicher-
stelle 0292H das für die deutsche Zei-
chendarstellung wichtige Ctrl-Z3 unterge-
bracht wird. Weiterhin sei auf einige Zeit-
schleifen hingewiesen, die ebenfalls bei
jedem Patch-Vorgang neu festgelegt wer-
den müssen, wenn man nicht zu lange
warten möchte, bis der WS endlich zur
Sache kommt. Die entsprechenden Labels
sind mit DEL3: und DEL4: benannt und
haben die Adressen 02D1H bzw. 02D2H.
Tabelle 1
Die mnemotechnische Ordnung
Wenn man sich den WS nach eigenem
Geschmack optimal richten möchte, so ist
das nur mit einem gut merkbaren Satz von
Ctrl-Codes möglich. Leider können nur
wenige Eselsbrücken aus dem Amerikani-
schen übernommen werden, und es ist
geradezu grotesk, wenn zum Hochstellen
des Textes T T und zum Tiefstellen TY
verwendet werden muß, wo doch jeder
Deutschsprechende „T“ als „Tief“ inter-
pretiert und mit „Y“ einen nach oben ge-
richteten Vektor meint.
Da nicht viele Buchstaben für die ver-
schiedenen Schriftarten zur Auswahl ste-
hen, sollten diese wenigstens sinnent-
sprechend eingesetzt werden. WS-Benut-
zer, die sich an den US-Standard gewöhnt
haben, sind nicht gleich zum Umdenken
bereit. Aber spätestens nach ein paar Ta-
gen folgt man gerne der Vereinfachung,
und die verwirrenden, alten Ctri-Befehle
für den Aufruf der Sonderschriftarten sind
schnell vergessen. Will man aber schon
einmal geschriebene Texte nicht mehr än-
dern und beim gewohnten Ctrl-Satz blei-
ben, so genügt es, wenn für die neu aufzu-
nehmenden Schriftarten lediglich zwei
neue Ctrl-Codes definiert werden.
Die Festlegung der Codes ist eine Voraus-
setzung für das Patchen und muß daher
zuvor erledigt werden. In der Tabelle 1
sind die Befehle zur Auswahl der einzel-
nen Schriftarten zusammengefaßt, wobei
eine ganze Reihe weiterer kombiniert wer-
den könnten: TE steht für Engschrift, T W
für Weit, ? T für Tief, Rücksetzten von Eng
wird TR usw. Die wichtigsten Ctrl-Codes
sind TA und ?N. Hier liegt der Schlüssel
zum Ganzen:
Die im Amerikanischen oft für Fettschrift
verwendeten Labels „PALT:” und
„PSTD:“ können freigemacht werden, da
Fettschrift mittels TB aus dem Label
„BLDSTR:“ (= boldstrike) gesteuert wer-
den kann. „PALT:“ und „PSTD:“ werden
dafür zu offenen ESC-Sequenzen modifi-
ziert und erlauben, zusammen mit dem für
die typische Sonderschriftart angehängten
Argument, die FX-80-Schriften aufzurufen
und nach Wunsch zu mischen oder dop-
pelt und fett zu schreiben. Mit TAx =
Alternative Schrift EIN bzw. mit TPx =
Pica = Alternative Schrift AUS schaltet
man die Sonderschriften ein und aus. Das
Argument „x“ steht hierbei für die einzel-
nen Schriftarten wie z.B. Elite, Italic und
Proportional.
Peeker 7/85
Die zu ändernden Zellen
Da auf dem Bildschirm noch immer die
Eingabe der „Location to be changed”
erwartet wird, beginnen wir mit den zuvor
erwähnten Sonder-Patches für die deut-
sche Darstellung und den kurzen Warte-
schleifen.
Die Vorgehensweise ist folgende: Wir
wählen die Adreßnummern und nicht die
Label-Namen, da wir innerhalb der Version
3.0 bleiben, und geben als erstes „292
<R>" ein, wobei <R> für Return steht.
Auf dem Bildschirm wird uns dann der alte
Inhalt der Speicherzelle 0292H, nämlich
„00“ angezeigt. Beim Anwählen der
Adresse 0292H wurden die nichtführende
Null und das „H“ (für hexadezimal) weg-
gelassen.
Der Inhalt einer Adresse wird geändert,
indem man das für die Änderung benötigte
Byte (wiederum hexadezimal) eingibt: 04
<R>. Wir haben mit 0292H das Label:
„TRMINI:“ angewählt, das für die TERMI-
NAL INITIALIZATION verantwortlich ist
und von dessen acht Bytes vier belegt
werden müssen, um Ctrl-Z3 für die deut-
sche Zeichendarstellung auf dem Bild-
schirm „einbauen“ zu können. Mit „O4
<R>“ wird das „Zählbyte“ für die noch
folgenden vier Bytes vorangestellt, das
festlegt, wieviel Bytes insgesamt im jewei-
ligen Label berücksichtigt werden und das
beim Patchen zur Vollständigkeitskontrolle
herangezogen werden kann. Jetzt erst fol-
gen die vier weiteren Bytes: 14 in 0293H,
48 in 0294H, 1A in 0295H und 33 in
0296H.
Es wäre nun sehr mühsam, wenn jedes-
mal die Folgeadresse neu eingegeben
werden müßte. Ein zweites <R> führt un-
mittelbar zur nächsten Adresse und der
Angabe deren Inhalts, so daß die insge-
samt fünf Bytes ab Adresse 0292H auch
so eingegeben werden können:
292 <R> 04 <R><R> 14 <R><R> 48
<R><R> 1A <R><R> 33 <R>. Der
Byte-String wird am Ende nur mit einem
<R> abgeschlossen. Damit können
gleich weitere, neue Adressen angewählt
werden. Hierzu noch ein Beispiel für die
Verkürzung der schon genannten Warte-
schleife bei Adresse 02D1H:
Auf „Location to be changed?“ antwortet
man: 2D1 <R> und bekommt den derzei-
tigen Speicherinhalt „19“ ausgewiesen.
Der Wert für die Warteschleife kann zwi-
schen 1 und 127 liegen. Wir wählen den
kürzesten und geben 01 <R> ein. Die
nichtführende Null könnte man hier eben-
falls weglassen, es hätte also 1 <R> ge-
nügt, doch beim erstmaligen Patchen führt
Peeker 7/85
CP/M
Adresse: Adr.# CtriP Inhalte Bedeutung
TRMINI: 0292 B4 14 48 1A 33 CTRL-23 -> deutsche Zeichen
DEL3: B2D1 Öl (ex: 19) mittellange Warteschleife AUS
DEL4: 02D2 Bl (ex: 4B) lange Warteschleife AUS
DEL5: 02D3 00 (ex: 99) Ctrl-delay AUS
PALT: D6B5 Ta 01 1B ESC-Sequ.-> Sonderschrift EIN
PSTD: B6BA: TN BI 1B ESC-Sequ.-> Sonderschrift AUS
USRI: D6C9 190 93 1B 57 08 ESCW® -> Weit AUS
USR2: D6CE 1w 03 1B 57 O1 ESCW1 -> Weit EIN
USR3: D6D3 !E 81 OF SI=CHR$(15) -> Eng EIN
USRA: M6D8 ’R 08 32 15 58 DC + ESC P -> Eng AUS+NORMAL
RIBBON D6DD TY 23 ıB 58 208 ESC SG -> Hochstellen EIN
RIBOFF D6E2 !Y 984 1B 54 1B 48 ESC T +H -> Hochstellen AUS
ROLUP D6BF !T 2a 1B 58 21 ESC S 1 -> Tiefstellen EIN
ROLDOW: 06C4 Tr 084 1B 54 1B 48 ESC T +H -> Tiefstellen AUS
PSINIT: D6E7 7 1B 4D 1B 52 ®1 1B 4F -> Drucker INIT
PSFINI: B6F8 6 1B 57 808 12 1B 49 -> Drucker END
BLDSTR: 0691 1B 93 Fettdruck 3-mal Anschlag
DBLSTR: 0692 !D 22 Doppeldruck 2-mal Anschlag
INITPF:+1 9367 48 (72 Zeilen Papierformat = .PL72)
INITPF:+2 0368 40 02 (Papierlänge in 1/48" wiederholen)
INITPF:+5 P36B 8 (entspricht .MT® = ® zusätzl. Kopfzeilen)
INITPF:+6 036C B0 99 (wird hier in 1/48" wiederholt)
INITPF:+13 0373 BA (entspricht .MBl® = 10 Zeilen Fußabstand)
INITPF:+14 9374 50 98 (wird hier in 1/48" wiederholt)
INITPF:+17 0377 Öl (Abstand Seiten-# vom Text in Zeilen = |)
INITPF:+18 9378 98 BB (wird hier in 1/48" wiederholt)
INITPF:+24 B37E 08 (Heftrand = 8 Spalten, entspricht .P08)
INITRM D38D 43 (rechter Rand + 1 Spalte, entspr. TOR68)
Patches für den mnemotechnichen WORDSTAR 3.9 mit den
frei wählbaren,
Elite, Italic und Proportional.
Tabelle 2
allzu große Freizügigkeit leicht zu Fehlern,
weshalb es ratsam ist, die Bytes immer
ungekürzt einzugeben.
Patch-Tabelle
In der Tabelle 2 sind alle für den mnemo-
technischen Wordstar nötigen Speicher-
adressen und deren Inhalte zum Aufruf
der FX-80-Schriftarten: Eng, Breit, Sperr-
druck, Index, Elite, Italic, Proportional, de-
ren mögliche Mischungen sowie der Fett-
und Doppeldruck aufgeführt und die Pat-
ches für weitere, wichtige Bereiche der
Druckdarstellung angegeben.
Die Reihenfolge der Vorgehensweise ist
beliebig. Am besten beginnt man mit den
Adressen 0292H, 02D1H und 02D2H, die
beim Installieren immer neu gepatcht wer-
den müssen.
Patch-Arbeit abschließen
Wenn alle Adresseninhalte gesetzt sind,
wird die Arbeit einfach dadurch abge-
schlossen, daß auf die Frage „Locations to
be changed (0 = End)“ eine Null mit <R>
eingegeben wird.
Der sich anschließende Aufruf „Confirm
terminal and printer selections ok (Y/N):“
wird mit „Y“ beantwortet. Danach läuft das
Laufwerk an und kopiert den modifizierten,
gepatchten WORDSTAR WS.COM auf die
Diskette. Sobald dieser Vorgang beendet
zusätzlichen Sonderschriften
ist, wird WS automatisch neu aufgerufen,
wobei die langen Warteschleifen fehlen,
und man ist rasch auf der Haupt-Menue-
Ebene angelangt. Es reizt nun zu sehen,
ob alle Patches gelungen sind. Dazu legt
man eine neue Test-Datei mit einem Um-
laut im Namen an. Der Dateiname sei
„HÜTHIG.TST“. Zunächst schreibt man
ein paar belanglose Worte wie: „...das ist
Pica, dann: TAM ...das ist Elite... T NP
..wieder normal Pica... T A4 ...das ist Ita-
lic... TN5 ...wieder normal Pica... T Ap1
..Proportional... ?NpO und wieder nor-
mal“. (T bedeutet hier Ctr-P und muß
stets allen Befehlen vorangesetzt wer-
den).
Nach erfolgtem Abspeichern dieses kur-
zen Textes und anschließendem Ausadruk-
ken zeigt sich dann, ob das Werk den
Erwartungen entspricht.
Tastatur und Ctrl-Codes
Eine Reihe von Apple-Nachbauten verfügt
über frei programmierbare Funktionsta-
sten mit einer Batteriepufferung. Der Wert
solcher Einrichtungen ist unschätzbar, da
lediglich eine vorprogrammierte Taste zum
Einschalten einer Schriftart bzw. eine
zweite zum Ausschalten gedrückt werden
muß. Moderne Tastaturen, die an den Ap-
ple angeschlossen werden können, haben
teilweise 10 bis 24 Funktionstasten, die
auf bis zu vier Ebenen belegbar sind und
59
meist schon in einer Ebene über die wich-
tigsten Wordstar-Ctrl-Codes verfügen.
Das Pitch-Problem
Da die verschiedenen Epson-Schriftarten
unterschiedliche Zeichen-Dichten aufwei-
sen, ist der rechtsbündige Blocksatz nicht
mehr durchführbar. Lediglich die Normal-
schrift Pica und Italic und deren Index-
schriften haben den gleichen Pitch mit 10
Zeichen pro Zoll. Elite hingegen schreibt
mit 12 Z/Zoll, Engschrift (condensed) mit
17 Z/Zoll, und die Sperrschrift ist 8,5 Z/
Zoll breit. Die Breitschrift selbst verfügt
über einen 5er-Pitch, und jede Mischung
führt zu neuen Pitch-Werten. Schließlich
gibt es für Proportional überhaupt keinen
festgelegten Pitch, da die einzelnen Zei-
chen zwischen 5 und 12 Pixelpunkte breit
sein können.
Man kann im Regelfall davon ausgehen,
daß jede Datei in einer Vorzugs-Schriftart
angelegt wird, wobei für Hervorhebungen,
einzelne Passagen, Überschriften oder
Teile von Tabellenwerken Sonderschriften
benutzt werden.
Für den Ausdruck des Textes wird im all-
gemeinen ein linker Heftrand mit acht
Spalten Abstand gewählt, der in der
Adresse 037EH fest (default) installiert ist
oder durch den Punktbefehl .PO (Druck-
spalte) frei gewählt werden kann. Somit
bedeutet Linksbündigkeit = 8 x 1/10 Zoll
= 20,32 mm Abstand vom linken Papier-
rand bei Normalschrift. Begänne jedoch
der Text einer neuen Zeile nicht im Nor-
malschriftmodus, sondern mit Engschrift,
so wären nur 8 x 1/17 Zoll = 11.95 mm
Heftrand festgelegt, und der eng geschrie-
bene Text würde nach links vorgerückt
erscheinen. Das Problem der Linksbün-
digkeit läßt sich prinzipiell vermeiden,
wenn überhaupt kein Heftrand (.PO=0
bzw. Speicherinhalt von O37EH: 00) fest-
gelegt ist.
Eine weitere Lösung besteht darin, daß in
jedem Fall eine neue Zeile mit Pica-Nor-
malschrift begonnen wird. Dies wiederum
ist in der Praxis nicht akzeptabel. So helfen
entweder nur eine bestimmte Anzahl von
Leerzeichen je Schrifttyp zu Beginn der
Zeile oder ein entsprechender Punktbe-
fehl weiter. Beide Möglichkeiten sind in
Tabelle 3 zusammengefaßt und sind hin-
sichtiich der wählbaren Befehlsform
gleichwertig. Punktbefehle müssen, wenn
Normalschrift am Zeilenanfang wieder-
kehrt, wieder auf den Standardwert zu-
rückgestellt werden; in unserem Fall also
mittels .PO8 zu Beginn der neuen Normal-
zeile.
60
‚nat ander nasse gasan Hnnne Hnaın Manor Hana ein
Froportional
neuen Zeile =
mn Kan Anne wende an aa Hukee
Elite
neuen Zeile =
b} neue Zeile mit
u
| Italie
BOB. a)
. neuen Zeile =
i b’ neue Zeile mit
Smsat warm arme armen umeen nenn sen Pi j- Sons dent unse Arsen mann. Ort Mean ne Scan: wem aanes Mana. Ares Mar Pie
Engschrift
Dolls . A)
: neuer
. b} neue Zeile
ans ononn msn sonne muncn non üsoen mama ser art arme moncn onsce nunan munen suren
zeile = &
mit
Sperrschrift
DB a)
x neuen Zeile =
| Breit
.„FO4 ! a)
: b) neue Zeile mit
matt Hetnn Mpman Mann Damen Mphme Mpiare Minen Hunde Mid Wen hand Mnnes MeHEE Hana Meike Mm makes mnmn Mate Minen Hanna Mana Some Mae Miet name
ee
entweder fortlaufend schreiben und
keine {!)
b} neue Zeile mit .po? in Extrazeile davor richten
jonas Hanne Anker mann Aapin Hmtee Ahnen nnenn Ma end mike eine armen Anne Amann ManmE Man Mh Munde mnit Her
keine Blanc-Lösung,
Schr i ft
add Munde Made aiee Ai Mae Mena Mahn Mh Mb hapr Medi Mine Arne Meder MEHhn Mid Mann Ant Man Annie Mande Innte menne An areas Senne Andanen Mena Meine it mache Mahn Fern mean anne Mana Maine mie Maps
a) entweder fortlaufend schreiben und zu Beginn der
2 Blancs setzen,
b) neue Zeile mit .poßs in Zeile zuvor richten
cclear 5
aetan Hier muens r4nh Men mie Amine mei am par Aid rate Mann ine Ang Murten Men ie
a) entweder fortlaufend schreiben und zu Beginn der
4 Blancs geben,
.polB ın
mirss wesnn Han Mae mide mprih Adam min Minen Mine MEnMn Mani Mandt Aamd MEHR Mmie meh KendE HAMDE HAM Mainnd Amme Mene Miuhe Meree Minen Mirbb Adnan Ahnen Annas Madame ae AFHEE MAHEe Meran nme Min Anne man Anseme Aaime Mus
oder
Zeile davor richten
entweder fortlaufend schreiben und zu Beginn der
2» Blancs geben,
.po8 in Zeile davor richten
oder:
Inte Heer Auen pin Haren mann Hanna Mamas HH Manit ip MEHR Minds Fine wenn Mann be Hanse AR ha Min Mann Tann Arne Menue Mamue Manee
entweder fortlaufend schreiben und zu Beginn der
Blancs setzten,
003»
wutee site urmmn Hamas Mann Memmmd Ammiad SER Matek Kat Menee Wenn Hmm Adna Mrd Mund Ama ieh mine Feten MEHen Mae ADMEE MBuK Mite puren dad mrnns wnnnE Mann Mann Home ut
oder a
in Zeile davor richten
zu Beginn der
Blanc-lösung, nurs
je anne mehr eher Mena Mamnd Anni Men Amen Amsne Mensn Habe Helme Mann Hand Mpnnm Henn Munde Mmpdb Mahn mine MAR Mahnk Hahk Mmee Ak Minh ab Men mans mensn Man
da BREIT über Li-Rand, nur:
.po4 in Extrazeile davor richten
m m m m 1 0
Alle Werte gelten nur für den DEFAULT— .P0O8 — Wert von WS !
Tabelle 3
Individuelles Druckformat
Hat man sich schon einmal der Patch-
Arbeit angenommen, so besteht die Gele-
genheit, gleichzeitig und ohne Aufwand
die Formatierung des Druckbildes nach
eigenen Wünschen neu zu gestalten. Die-
se Vorzugseinstellung (default) wird dann
bei Beginn der Arbeit automatisch vom
Wordstar gewählt. Es ist ärgerlich, wenn
bei jeder neu anzulegenden Datei erst ein-
mal .PL72 gesetzt werden muß, nur weil
der im Original vorliegende amerikanische
WS ein .PL66 für das in den USA ge-
bräuchliche und dort nur 11 Zoll lange
Papier einstellt, während wir in Europa 12-
Zoll-Papierböogen verwenden. Auch
schätzt nicht jeder die drei zusätzlichen
Leerzeilen am Kopfrand bei gleichzeitig
nur sechs freien Fußzeilen, wodurch
Punktbefehle wie .MTO und .MB10 voran-
gestellt werden müssen. Ein gut gepatch-
ter WS benötigt überhaupt keine Punktbe-
fehle für die Standard-Druckmaske. Je-
dermann hat aber die Möglichkeit, seinen
indivudellen Vorstellungen mit Hilfe des
INSTALL-Programms freien Lauf zu las-
sen. Patch as patch can: Individuell und
universell zugleich, das ist die besondere
Stärke von Wordstar!
(Der zweite Teil dieses Aufsatzes unter
dem Titel „Wordstar druckt internationale
Zeichensätze“ erscheint im nächsten
Peeker.)
Blick über den Zaun:
Die moderne Satztechnik
Ein Mikrocomputer kann in Verbindung mit
einem Matrixdrucker die Fähigkeiten einer
Satzanlage bestenfalls nachahmen, aber
niemals erreichen. Werfen wir hierzu ei-
nen Blick über den Zaun in das grafische
Gewerbe:
Die heutigen Druckschrift-Zeichen haben
in der Regel eine Dickte (= schriftzeichen-
abhängige Breite = character width), die
x/18tel des breitesten Buchstabens des
jeweiligen Schriftgrades einnimmt. Ein „v“
nimmt beispielsweise 9/18 des großen
„W“ mit 18/18 ein. Ein 8-Punkt-„v"“ (1
Punkt = 0,375 mm) wäre damit effektiv
9/18 * 8x 0.375 = 1,5 mm breit. Nun gibt
es jedoch von derselben Schriftart, z.B.
Helvetica, unterschiedlich breit laufende
Schriftschnitte, z.B. Helvetica schmalma-
ger, breithalbfett usw. Während bei einem
normalen Schnitt der breiteste Buchstabe
„W“ ein „Geviert” (= gedachtets Buch-
stabenquadrat) einnimmt, belegt bei-
Peeker 7/85
spielsweise beim schmalmageren Schnitt
der breiteste Buchstabe nur ein „ge-
stauchtes“ Rechteck. Dieser Sachverhalt
wird als „Set“ bezeichnet (= schrift-
schnittabhängige Breite). Der Begpriff
„Piteh“ (von Matrixdrucker-Herstellern
geprägt?) entspricht annähernd dem Be-
griff „Dickte“ bzw. „Set“. Was die Pixel
oder Nadeldrucker-Punkte anbelangt, so
wird im Kathodenstrahl-Lichtsatz ein ein-
zelner Buchstabe meist durch eine 128-
mal-128-Bildpunkt-Matrix aufgelöst. Bei
einer 8-Punkt-Schrift würde dies bedeu-
ten, daß auf einem „Geviert” von 3 mal 3
mm maximal über 160.000 Bildpunkte be-
lichtet werden könnten. Es ist somit klar,
daß man selbst mit einer Lupe bei Druck-
buchstaben keine „Pünktchen“ mehr er-
kennen kann. In der Reprografie würde
dies einem 400er „Raster“ entsprechen.
Unter Raster versteht man in Deutschland
die Anzahl der Punkte oder Punktlinien pro
Zentimeter, in den USA pro Zoll (dpi =
dots per inch; Zoll ca. 2,5cm).
Beispielsweise beträgt die Punktauflösung
beim Macintosh oder beim Apple Ile mit
Double Hires ca. 80 dpi; dies entspricht
etwa einem 32er Raster, wie man ihn bei
Tageszeitungen verwendet. Zum Ver-
gleich haben hochwertige Farbreproduk-
tionen einen 70er bis 80er Raster. Aber
die Druckschrift selbst bringt es dank
Lichtsatz auf über 1000 dpi = über 400er
Raster. Würde der Macintosh oder Apple
le über eine Bit-Map-Grafik mit solcher
Hochauflösung verfügen, so wäre ein Zu-
satz-RAM von umgerechnet ca. 7 Mega-
bytes erforderlich. Weder ein 6502 noch
ein 68000 wäre jedoch in der Lage, diese
„Pixel-Masse“ zu bewältigen.
Die Firma Compugraphic in Langen teilte
mir hierzu mit, daß beispielsweise die cg
8600 sogar mit einer Auflösung von 2048
Linien pro cm arbeitet, wobei allerdings
keine Bildpunkte, sondern Vektoren ge-
speichert werden. Der Peeker wird auf
einer Linotype mit 300 Linien pro cm ge-
setzt (Tageszeitungssatz!). U. Stiehl
‘
Peeker 7/85
CPM 4
ProDOS-Editor 1.0
Applesoft-Editor
unter ProDOS-Betriebssystem
von U. Stiehl
1984, Diskette und Manual, DM 98,—
ISBN 3-7785-1024-X
Mit diesem neuen Editor — übrigens
der bislang einzige deutsche Pro-
DOS-Editor — wird dem Applesoft-
Programmierer ein Werkzeug zur ef-
fektiven Programmierung unter dem
Betriebssystem ProDOS gegeben,
denn die früheren Editoren sind alle-
samt unter ProDOS nicht mehr lauf-
fähig.
Unter anderem sind folgende Fea-
tures implementiert worden:
— Zeilenorientierter Editor mit jedem er-
denklichen Redigierkomfort (Insert,
Delete, Tab, Restore, freie Cursorbe-
wegung in allen vier Richtungen, Einga-
be von Ctrl-Buchstaben in Applesoft-
Zeilen usw.)
— Renumber (Zeilen-Umnumerierung)
— Xreference (sortierte Variablenliste)
— Suchen von Tokens, Strings und Varia-
blen
— dezimale und hexadezimale Umrech-
nungen
— Ausführung von Monitorbefehlen aus
dem Editor heraus
— Listen des Applesoft-Programms in
speicherinterner Form als Hex-Dump
— Suchen von Hex-Folgen, Adressen
oder Speicherstellen im gesamten
RAM-Bereich einschließlich der
Language-Card
— frei definierbare Tastatur-Macrobefehle
Der Applesoft-Editor liegt in einem
von ProDOS geschützten Bereich
und läßt sich per Tastendruck vor-
übergehend abschalten und ebenso
einfach wieder aktivieren.
Gerätevoraussetzung: Apple Il+, Ile
oder IIc
Hüthig Software Service,
Postfach 10 28 69,
D-6900 Heidelberg
rrelectronic
Elektronik - Fachliteratur - Personai-Computer
DataMagnetics-Disketten SS,SD ı0 stk. 29.90
BASF qualimetric®
Disketten 1.Wahl
BASF-Disketten softsektoriert in Pappkarton
3,25"-Disketten alle ohne Aufpreis mit Verstärkungsring.
Type Beschreibung 10 Stk
IXV ..... 48 TPI, 1-seitig, einfache Dichte ........ 39,90
LDN. 4. 48 TPI, 1-seitig, doppelte Dichte ..................... 49,50
2/96V.... 96 TPI, 2-seitig, doppelte Dichte ..................... 82,50
Sicherheits-Disketten
3,25'-Disketten mit Verstärkungsring; softsektoriert.
744-0 ....... 48 TPI, 1-seitig, doppelte Dichte .................. 49,50
7949-0; 48 TPI, 2-seitig, doppelte Dichte .................. 72,50
TAT-0 96 TPI, 2-seitig, doppelte Dichte .................. 89,50
Disketten - Doubler nur noch .. 12.5
Zum Anbringen der zusätzlichen Schreibkerbe.
9,29” - Plastikbox UNSER HIT! 5.95
Formschöne Klappbox aus Hart-PVC für ca. 10 Disketten in
den Farben grün, orange, schwarz, hellgrau, elfenbein oder
anthrazit. Bitte die gewünschte Farbe angeben. Mischbar.
Staffelpreise: I St. 5.95 10 St. 49.50 100 St. 459.-
2,25" - Disketten-Kästen
Diskettenbox ohne Schloß 24.95
Repräsentative Disketten-Box aus deutscher Fertigung in den
Abmessungen (T x B x H) 306x 174x144 mm ohne Schloß mit
topas farbenern Deckel für ca. 80 Disketten und 4 be-
schriftbaren Stützplatten. Sehr preiswert!
Diskettenbox
aufklappbar
für ca. 50 Disketten
aus stoßfestem, antistatischem
transparentem Acryl mit 4 beweg-
lichen, beschriftbaren Stützplatten.
29.30
DiskettenboXx abschliesbar 39.50
für ca. 85-100 Disketten
aus antistatischem ABS-Kunststoff,
Deckel aus hochwertigem Acryl(rauch-
glasfarben). Der Trog kannplatzsparend VV
in den Deckel gestellt werden. 9 beweg- (= —— 7
lichen Unterteiler mit beschriftbaren
Stützplatten sorgen für Übersicht.
<
Akustikkoppler s21d 289.-
300 Baud Modem CCITT Y.21 Standard
Akustikkoppler s21d 289.-
300 Baud Modem CCITT Y.21 Standard
7 an —
|
———— [| 7 mr
* Mit FTZ-Nummer * Gebühren- u. anmeldefrei
* Anschluß an alle Computer mit Y24-Schnitt
stelle * Vollduplexbetrieb * Answer- und
Orıginate-Modus * MADE IN GERMANY *
TELETERNT ZH aeeiniaiansiin 198 .-
Telekommunikationssoftware für den Apple.
* ohne serielles Interface * Datenübertragung
über den Gameport * Anschlußfertig an s21d.
Unser großer Hit auch für Ihren Apple //e:
80 Zeichen/64kB-RAM für APPLE //e
Er dtsch. Qualitätsprodukt
al,
incl.Demo-Diskette und
MR 1 ausführlichem Handbuch.
jetzt nur noch...........- 1 95.-
8 Bit/16 Kanal A/D-Wandler 490.-
Preisgünstiger universeller A/D-Wandler. Kurzdaten:
8-Bit-Auflösung, R,= | MOhm, 15 usec/Messung.
Accelerator //e_............... 1398.-
Mit dieser Karte laufen Ihre Programme bis zu 3,5 mal
schneller. (NCR 65C02; 3,5 MHz Takt; 80 kB-RAM dyn.)
Erphi-Controller AFDC-2 ....... 287.-
Dazu passende Laufwerke 80 Track (TEAC FD-55F) auf Anfrage.
Software-Hits für den Apple //e:
Print Shop die perfekte Heimdruckerei 139.50
mit der man in wenigen Minuten Grußkarten, Visitenkarten
und sogar Banner entwerfen und ausdrucken kann.
Dazzle Draw oas hochwertige Grafik-Set 1 79.-
Hochwertiges Grafik-Set für die verschiedensten Anwen-
dungen. Ob für Computerkunst oder Bauzeichnungen.
Hardware-Hits für den Macintosh:
Thunder Sta. 2... 1198 .-
Lesekopf für Imagewriter (anstelle des Farbbandes) zum
übertragen von Grafiken oder Text in MacPaint-Dokumente.
Die Aufrüstung Ihres 128k MAC auf
512k kostet bei uns nur: 1290.-
Apple/77e, //c + Macintosh Yorführ- und
Messegeräte preisgünstig abzugeben.
Ladenverkauf, Vorführung und fachgerechte Beratung
rr electronic
Elektronik - Fachliteratur - Personal-Computer
6900 Heidelberg 1 Breslauerstr. 29 Tel.06221/781500
Geschäftszeiten: Mo. - Fr. 9-13 +14 - 18 Sa. 9 -13 Uhr
Versandanschrift: 6900 Heidelberg I Dammweg 2
61
Pascal-
Preisausschre
Da heißt es mitmachen!
Es wird die Aufgabe gestellt,
mit einem „getunten“ Pascal-Programm Pr
einen ProDOS-TXT-File Ä
in einen Pascal-TEXT-File yG
zu konvertieren.
Pascae Prus®
. m © Ara re yca e Qas<2
Bei unserem Pascal-Wettbewerb N \ x erh
kc ]; u at i ie j ! ö i r UN
7
ÜG
@, 4
1. Preis: DM 500,- (5
2. Preis: DM 250,-
3.-25. Preis: Buchtitel
IR
NY
Y.
ING
ur
62 Peeker 7/85
DH
at
N
a \\\
Ss @
_
all
au
N
\
Peeker 7/85
IN
N
NN Nu
ÄRS
RN
S
\
\ ".\Q \
3 \
Ä
a
Sie erinnern sich sicherlich noch an das
erste Peeker-Heft (September 1984), das
ein Primzahlen-Preisausschreiben ent-
hielt. Aufgabenstellung: Errechne die
Primzahlen im Bereich 2-8191 so schnell
wie möglich. Damals gingen 279 Lösun-
gen — mit der sensationellen Bestzeit von
0,055 — ein, die allesamt in Assembler
geschrieben waren. Bei der Durchsicht
der Lösungen ist mir dann „gedämmert”,
daß ich bei dem Primzahlen-Wettbewerb
nicht nur auf Geschwindigkeit, sondern
auch auf Kompaktheit des Programms hät-
te abheben sollen. Damit hätten sich un-
elegante Lösungen mit zum Teil 8K Ob-
jektcode verhindern lassen. Deshalb wird
unser neues Preisausschreiben — diesmal
für Pascal-Fans — beide Aspekte berück-
sichtigen.
Die Übertragung und Konvertierung von
Pascal-TEXT-Files auf ProDOS-Disketten
oder von ProDOS-TXT-Files auf Pascal-
Disketten hat im Gegensatz zur Errech-
nung von Primzahlen einen praktischen
Nutzwert: Pascal-Programmierer können
nämlich dann den Quellcode mit Ap-
pleworks, das unter ProDOS läuft, sehr
komfortabel redigieren. Hierzu sind zwei
verschiedene Utilities erforderlich:
1. PASTOPRO (From Pascal to ProDOS):
Dieses Hilfsprogramm konvertiert Pascal-
Textfiles in ProDOS-Textfiles.
2. PROTOPAS (From ProDOS to Pascal):
Dieses Hilfsprogramm konvertiert Pro-
DOS-Textfiles in Pascal-Textfiles.
1. PASTOPRO
Gegenstand des Pascal-Preisausschrei-
bens ist die PROTOPAS-Utility. Da ich zur
Erläuterung der Wettbewerbsbedingungen
aus verständlichen Gründen kein Muster
der PROTOPAS-Utility vorstellen kann,
werde ich statt dessen eine PASTOPRO-
Utility beschreiben (siehe Listing). Diese
leistet im einzelnen folgendes:
1. PASTOPRO wird unter dem ProDOS-
Betriebssystem mit RUN PASTOPRO von
Slot 6, Drive 1 gestartet.
2. Danach erscheint ein spartanisches Me-
nü, das Sie auffordert, eine Pascal-Disket-
te in Slot 6, Drive 2 einzulesen.
3. Nach „W = WEITER“ werden am Bild-
schirm alle TEXT-Files, die sich auf der
Pascal-Diskette befinden, angezeigt. Es
werden nur TEXT-Files (also keine CODE-
Files usw.) ausgewiesen, denen eine fort-
laufende Nummer von 1 bis N vorange-
stellt ist, z.B. „I SYSTEM.WRK.TEXT, 2
SSCHRE
sus ’ IS,
Werben?
TEMP.TEXT“ usw.). Nun wird man aufge-
fordert, die gewünschte Datei-Nummer
einzugeben.
4. Gibt man keine Datei-Nummer im Be-
reich 1 bis N oder lediglich Return ein, so
wird das selektive Pascal-Directory erneut
angezeigt. (Man kann vorher die Pascal-
Diskette wechseln.)
5. Gibt man eine existente Datei-Nummer
ein, so beginnt der Übertragungsvorgang
von der Pascal- auf die ProDOS-Diskette
mit einem Piepston und der Anzeige von
„*%** START“. Der Übertragungsvorgang
bzw. das Programm selbst wird mit einem
erneuten Piepston und der Anzeige von
„*** ENDE“ beendet. Die Zeitdifferenz
zwischen erstem und zweitem Piepston ist
die (von uns handgestoppte) Kopierzeit.
2. PROTOPAS
Das Wettbewerbsprogramm PROTOPAS
muß folgende Voraussetzungen erfüllen:
1. PROTOPAS.TEXT muß als einheitlicher,
d.h. nicht aufgeteilter, Quelltext (SY-
STEM.WRK.TEXT = PROTOPAS.TEXT)
vorliegen, der unter Pascal 1.1 und 1.2
„normal“ compiliert werden kann, d.h. oh-
ne Assembler, Linker usw. Zu diesem
Zweck sollte also die Diskette neben SY-
STEM.WRK.TEXT höchstens folgendes
Standard-Files von Pascal 1.1 oder 1.2
enthalten:
SYSTEM.APPLE
SYSTEM.PASCAL
SYSTEM.MISCINFO
SYSTEM.COMPILER
Im übrigen kann PROTOPAS auf Tricks
aller Art zurückgreifen (z.B. „gepokte“
Maschinenroutinen ähnlich wie bei PAS-
TOPRO usw.).
Die Zeilen des Quelltextes sollen eine
Länge von 79 Zeichen nicht überschrei-
ten, damit man ihn mit einem normalen
„SYSTEM.EDITOR“ ansehen und ggf. im .
Peeker ausdrucken kann.
(Die Gesamtlänge von PROTOPAS.TEXT
wird ausgewiesen, wenn man ihn mit „Up-
date“ oder „Write“ speichert.)
2. PROTOPAS.CODE muß sinngemäß ein
„normaler“ Objektcode sein, der über
„Execute“ gestartet werden kann. Es ver-
steht sich von selbst, daß wir die einge-
reichten Programme auf einem „norma-
len“ Apple Il testen werden, also keine
Accelerator-Karte, kein Z80 mit Turbo-
Pascal usw.
(Die Länge von PROTOPAS.CODE kann
man über das kleine Programm „LIBRA-
RY.CODE“ erfragen, das sich auf der Pas-
cal-Systemdisk Nr. 3 befindet.)
63
3. Der Einfachheit halber sollte sich die
PROTOPAS-Diskette in Slot 6, Drive 1
(Volume „4:“) und die ProDOS-Diskette
in Slot 6, Drive 2 (Volume „5:“) befinden.
4. Nach einem knappen Minimenü (mit
Programmname und Name des Program-
mierers) sollte PROTOPAS dann das Pro-
DOS-Volume-Directory selektiv in bezug
auf die durchnumerierten TXT-Files anzei-
gen (siehe oben). Um PROTOPAS nicht
unnötig kompliziert zu machen, wird also
auf Subdirectories verzichtet.
5. Nach Eingabe der gewünschten Datei-
Nummer sollte der Übertragungsvorgang
mit einem Piepston und „*** START“ be-
ginnen und mit einem Piepston und „x%*%*
ENDE“ enden, nachdem die konvertierte
Ausgangsdatei auf der Zieldiskette ge-
speichert worden ist. Vor „sakk START“
darf sich bereits das Volume-Directory im
Speicher befinden. Dagegen dürfen der
Index-Block und die TXT-Datei selbst na-
türlich erst nach „START“ eingelesen
werden. Das Einlesen und Anzeigen des
Directory ist mithin nicht zeitkritisch.
6. Auf der Pascal-Diskette darf noch keine
mit „Make“ o.ä. im voraus „präparierte“
Zieldatei existieren. Damit keine Namens-
Konflikte auftreten, sollte die Zieldatei den
provisorischen Namen „TEMP.TEXT“ (für
„temporary textfile“) erhalten.
7. Die ProDOS-Ausgangsdatei sollte eine
Größe von bis zu 32768 Bytes haben dür-
fen (32K). Mehrfach-Leertasten nach Re-
turn sind in die pascal-typischen Tabulato-
ren umzuwandeln. Beispiel:
Aus OD 20 20 20 20 20
wird OD 10 25
„10“ steht für Tab und „25“ steht für $25
minus $20 = $05 = 5 Leertasten. Die
Zieldatei wird damit entsprechend kom-
pakter.
Ctrl-Zeichen (außer $0D) sind zu eliminie-
ren und Bit 7 on ist in Bit 7 off umzuwan-
deln.
8. Der Zeittest (Zeit zwischen „srkk
START“ und „##** ENDE“) wird anhand
einer ProDOS-Testdatei namens „TEMP“
durchgeführt, die aus 21 Textblöcken be-
steht und exakt 18360 Bytes umfaßt (siehe
Muster Testdatei sowie Miniprogramm,
das Testdatei erzeugt). Die Pascal-Zielda-
tei hat dann nach Tab-Umwandlung einen
Umfang von exakt 16840 Bytes und paßt
damit gerade noch in den Pascal-Editor-
Arbeitsspeicher.
9. PROTOPAS sollte über eine rudimentä-
re Fehlerabsicherung verfügen. Wenn
man beispielsweise anstelle der Datei-
Nummer einen String eingibt, so darf das
Programm nicht automatisch zusammen-
brechen. Eine Absicherung gegen falsch
64
eingelegte Disketten (z.B. DOS 3.3 statt
ProDOS usw.), gegen zu große Textfiles
(größer als 32K) usw. wäre dagegen zuviel
verlangt. Hier ist der Programmabbruch
erlaubt.
Nehmen wir als Beispiel ein ähnliches Pro-
gramm (GETDOS zur Umwandlung von
DOS-3.3- in Pascal-Textfiles; siehe
Peeker, Heft 1/1985, S. 70ff.). Diese Utility
würde den Wettbewerbsbedingungen aus
drei Gründen nicht genügen:
— Erstens wird kein DOS-Catalog ange-
zeigt. Vielmehr muß man hier den Dateina-
men „blind“ eingeben (vgl. 4. Bedingung).
— Zweitens werden Mehrfach-Leertasten
nicht in „1O XX“-Tab-Sequenzen umge-
wandelt, womit zu große Zieldateien ent-
stehen (vgl. 7. Bedingung).
— Drittens „verabschiedet“ sich das Pro-
gramm mit „Bad Input“ und „Re-initia-
lize“, wenn man im Menü mit einem String
statt mit einer Zahl antwortet (vgl. 9. Bedin-
gung).
3. Punktesaldo
Die Gewinner des Wettbewerbs werden
nach einem „Punktesaldo“ ermittelt, der
sich aus drei Positionen zusammensetzt:
1. Länge von PROTOPAS.CODE in Bytes
2. Länge von PROTOPAS.TEXT in Bytes
3. Kopierzeit in Sekunden mal 100
Nehmen wir als Beispiel das gelistete Pro-
gramm PASTOPRO. Der „CODE-File“,
d.h. das Applesoft-Programm selbst, hat
eine Länge von 1330 Bytes. Der „TEXT-.
File“, der normalerweise bei einem Ap-
plesoft-Programm gar nicht benötigt wird,
hätte eine Länge von 1950 Bytes. Und
schließlich dauert der Konvertierungsvor-
gang für die Testdatei „TEMP.TEXT“ 19,5
Sekunden; 19,5 mal 100 = 1950. Damit
ergäbe sich ein „Punktesaldo“ von 1330
+ 1950 + 1950 = 5230.
4. Teilnahmebedingungen
Wenn Sie teilnehmen möchten, so senden
Sie uns bis zum 22.07.1985 (Posteingang)
eine adressierte Postkarte mit dem Stich-
wort „Pascal-Wettbewerb“ und folgenden
vier Zahlen:
xxxx CODE-File-Länge (Bytes)
xxxX TEXT-File-Länge (Bytes)
xXxx Kopierzeit (Sek.) mal 100
xxxx Punktesaldo
Die 40 besten Punktesaldo- „Kandidaten“
werden dann von uns am 23.07.1985
(Postausgang) per Eilboten gebeten, uns
leihweise zur Überprüfung der Werte eine
formatierte Pascal-Diskette (35 Spuren)
mit dem Volume-Namen „P:“ und den
Files PROTOPAS.TEXT und PROTOPAS
.CODE bis spätestens 01.08.1985 (Post-
eingang) zuzusenden. Beachten Sie, daß
Sie bei der Kopierzeit die Sekundenzahl
auf eine %» Sekunde abrunden können,
bevor Sie sie mit 100 malnehmen. Wenn
unsere eigenen Überprüfungen einen hö-
heren Punktesaldo ergeben, als auf der
Postkarte vermerkt ist, so wird der höhere
Punktesaldo eingesetzt. Wenn wir umge-
kehrt einen niedrigeren Punktesaldo er-
mitteln, so gilt trotzdem Ihr eigener Post-
karten-Punktesaldo. Damit soll ausge-
schlossen werden, daß Sie nach dem Ein-
senden der Postkarte noch Programmver-
besserungen vornehmen.
Wir werden PROTOPAS.TEXT mit „nor-
malem“ Pascal 1.1 und 1.2 zu compilieren
versuchen und dann mit Hilfe des neu
entstandenen SYSTEM.WRK.CODE die
Textdatei übertragen, welche zusätzlich
einige Ctrl-Zeichen, Bit-7-on-ASCIl-Zei-
chen sowie etwas „Schrott“ im letzten
Block enthalten wird.
Die Namen der Gewinner werden dann im
Heft 9/1985 mit dem Quellcode des
Hauptgewinners veröffentlicht. Sollten zu-
fällig mehrere Gewinner den gleichen
Punktesaldo haben, so entscheidet das
Los. Im übrigen ist der Rechtsweg ausge-
schlossen. Der Hauptgewinner erhält DM
500,-, der Zweitgewinner DM 250,-, und
die weiteren Gewinner (3.-25. Preis) er-
halten das Buch „ProDOS für Aufsteiger,
Band 2” inkl. Begleitdiskette.
U. Stiehl
I
Peeker 7/85
Pascal-to-ProDOS-Konverter
l. Länge als BIN-File: 1330 Bytes (entspräche Pascal-CODE)
2. Länge als TXT-File: 195® Bytes (entspräche Pascal-TEXT)
3. Kopierzeit: 19,5s (wird mit 1®® multipliziert)
4. Punkte: 5230 (1330 + 1950 + 19,5 x 199)
Die Kopierzeit berechnet sich aus der Differenz zwischen
den zwei "Piepstönen'" in den Programmzeilen 40-59
von PASTOPRO (**%* START bis *%*%* ENDE).
Testdatei
Die Pascal-Testdatei umfaßt 36 Blöcke (brutto)
oder 1684® Bytes (netto).
Die ProDOS-Testdatei umfaßt 37 Blöcke (brutto)
oder 18368 Bytes (netto). Der Mehrzuwachs ist
in den Tabulatoren begründet.
Aufbau der Testdatei:
21 durchnumerierte Textblöcke mit 15 treppenförmig
eingerückten Zeilen zu je 5® Zeichen. Unter ProDOS
umfaßt 1 Textblock exakt 87® Bytes. 870 * 21 = 18279.
Einschließlich der Textblocknummern und der Returns
zwischen den Blöcken ergeben sich dann 18369 Bytes.
Anfang
l
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2
(Textblöcke 2 bis 21 genauso wie Textblock 1)
Ende
Die ProDOS-Testdatei kann mit folgendem Miniprogramm
erzeugt werden:
108 PRINT CHR$ (4)"OPEN TEMP": PRINT CHR$ (4)"WRITE TEMP"
110 PRINT : PRINT "Anfang": PRINT
128 FOR X = 1 TO 21: PRINT X
130 FOR Y=1 TO 15
149 S=Y- 1: IFS > THEN FOR Z = 1 TO S: PRINT " ";:
150 FOR Z = 1 TO 5®: PRINT "A";: NEXT Z: PRINT
16® NEXT Y: PRINT
170 NEXT X
180 PRINT "Ende'": PRINT
198 PRINT CHR$ (4)"CLOSE'"
NEXT Z
PASTOPRO
10 DATA 76,28,3,76,63,3,76,129,3,0,0,0,0,3,224,0,0,0,90,32,
0,191,128,13,3,176,76,96,169,2,141,17,3,169,®,141,18,3,
169,14,141,16,3,32,19,3,238,16,3,238,16,3,238,17,3,173,
17,3,2®1,6
DATA 208,237,96,169,14,141,16,3,173,9,3,141,17,3,173,
10,3,141,18,3,32,19,3,174,16,3,232,232,142,98,3,142,
16,3,169,255,141,0,16,224,142,144,1,0,238,17,3,298,
3,238,18,3,173,17,3,205,11,3,144,216
20 DATA 173,18,3,205,12,3,144,208,96,169,0,133,206,169,
14,133,207,160,0,177,206,249,40,201,255,208,1,96,41l,
127,201,13,240,35,201,32,176,31,201,16,208,21,20®, 177,
206,201,33,144,11,170,169,32,32,237,253,2®2,224,
32,208,246
DATA 32,195,3,32,195,3,76,137,3,32,237,253,76,183,3,
230,206,208,8,230,207,165,207,2®1,143,176,152,96:
FOR X = 768 TO 975: READ Y: POKE X,Y: NEXT:
IF PEEK (116) < 158 THEN PRINT "HIMEM!'": END
Peeker 7/85
60
65
70
„0090999000,
00° \)SSCHREIR
au Sn
LOMEM: 36608:M = 768:P = 3584:X = PEEK (48944):
POKE M + 14,224:D$ = CHR$ (4): PRINT D$"PREFIX,S6":
ONERR GOTO 78
HOME: INVERSE: PRINT "PASTOPRO": PRINT "U.STIEHL": PRINT:
PRINT "PASCAL";: NORMAL: PRINT "-DISK IN S6,D2": PRINT:
PRINT "W = WEITER ";: GET X$: ON X$ <> "W" GOTO 35
CALL M:O = ®: HOME: GOSUB 55: PRINT: PRINT:
INPUT "NUMMER: ";X$:0 = VAL (X$): ON O=PORO>N
GOTO 49: HOME: PRINT CHR$ (7)"%*%** START"
GOSUB 55:Y = 256:X = PEEK (B) + PEEK (B+ 1) « Y+2:
POKE M + 9,X - INT (X / Y) * Y: POKE M + 1, INT (X / Y):
POKE M + 11, PEEK (B + 2): POKE M + 12, PEEK (B + 3):
CALL M + 3
xX$ = "TEMP": PRINT D$"OPEN"X$: PRINT D$"WRITE"X$: PRINT
CALL M + 6: PRINT: PRINT D$"CLOSE":
PRINT CHR$ (7)'"x** ENDE": END
N = ®: FOR X = P TO P + 2047 STEP 26:L = PEEK (X + 6):
ON L = ® GOTO 65: ON PEEK (X + 4) < > 3 GOTO 65:
N+ 1: IFO= N THEN B = X:X = P + 2947: GOTO 65
ON O0 > ® GOTO 65: PRINT N" ";: FOR Y= 1 TOL:
PRINT CHR$ ( PEEK (X + 6 + Y));: NEXT: PRINT
NEXT: RETURN
PRINT D$"CLOSE'": HOME: PRINT "FEHLER " PEEK (222): END
PASTOPRO.O
(Gehört nicht zum Wettbewerb, da als DATA-Statements
bereits im Applesoft-Programm enthalten.)
ORG $9399
PASTOPRO.O
Als DATA-Statements in
PASTOPRO enthalten.
oo oıV m Aw mDd Hm
%*
*
%*
%*
* Pascal-to-ProDOS-Konverter
%*
*
*
*
U.Stieh1/18.05.85
*
IND EQU $CE
COUT EQU $FDED
MLI EQU $BFO®
$PEP®-$SDFF:Datenpuffer (32K)
$8ENY :Endmarker (FF)
$8FQp : LOMEM
$DEDD = 3584; $8F0D = 36608
“rk Kr KH
PUFBEG EQU $PEP®
PUFEND EQU $8EßPd
LOMEM EQU $8FQ9
*
DIR1 JMP DIR2
READ1 JMP READ2
WRITEl JMP WRITE2
FIRSTBL HEX 6g60®
LASTBL
;$8Eßd-1
; 768=M+ß
‚771=M+3
;774=N+6
‚777=N+9
‚779=M+11
COUNT HEX 93
Unit-Number 69 =
(Beispiele) E®ß = S6,D2
(Von Global Page $BF30 = 48944
durch Basic-Programm ermittelt.)
“*xrKk Kr KH
=
=
HH
-J
HEX EP ‚782=M+14
%*
RDPUFL HEX 99
RDPUFH HEX $®
RDBLKL HEX 69
RDBLKH HEX 68
*
* Blockread-Routine
%*
RDBLOCK JSR MLI
HEX 89
DA COUNT
BCS
‚stets Ö!
*
* Directory-Blöcke 2-5 lesen
65
66
#+>PUFBEG
RDPUFH
RDBLOCK
RDPUFH
RDPUFH
RDBLKL
RDBLKL
+6
Pascal-Textfile-Blöcke einlesen
von FIRSTBL + 2 bis LASTBL - 1.
Der FIRSTBL ist bereits vom
Applesoft-Programm um 2 erhöht
worden.
LDA #>PUFBEG
STA RDPUFH
LDA FIRSTBL
STA RDBLKL
LDA FIRSTBL+1
STA RDBLKH
JSR RDBLOCK
LDX RDPUFH :$8C00
INX ;$8DO9
INX :$8E00
STX ENDMARK+2
STX RDPUFH
LDA #$FF
ENDMARK STA $19@® ;SEßß: FF
*
Wenn < $8Eßß, dann $8CQ9
wegen 2-Page-Increment.
CPX #>PUFEND
BCC READ4
"Tödliche" Fehler (BRK)
a) Blockread-Fehler
b) Datei > 32K
STIRB HEX 0 ‚stirb!
*
READ4 INC RDBLKL
*
BNE READS
INC RDBLKH
LDA RDBLKL
CMP LASTBL
BCC READ3
LDA RDBLKH
CMP LASTBL+1
BCC READ3
RTS
EEEETERERDESUN
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
I
*
Zu Ze Ze Zu Zu Ze Ze =
Pascal-Datei über COUT schreiben
Ein Pascal-Textfile hat folgende
Struktur:
Blöcke ® + 1:
Systeminformationen, die
übersprungen werden. Daher ist
FIRSTBL effektiv FIRSTBL + 2.
Blöcke 2 bis LASTBL - 1:
Diese Blöcke enthalten die
eigentlichen ASCII-Texte. Man
beachte, daß LASTBL nicht den
letzten Block DIESES Files,
sondern den ersten Block des
NÄCHSTEN Files darstellt.
Doppelblocks
Der Textfile ab Block 2
ist in je 2 Doppelblocks
zu 1924 Bytes zusammengefaßt,
die am Ende mit Ctrl-ß's aufge-
füllt sein können, auch wenn ein
weiterer Doppelblock folgt.
Daher müssen Ctrl-®'s stets
ignoriert werden. Zu dem
Tab-Problem siehe unten.
“KK KFKH HU
WRITE2 LDA #9
STA IND
LDA #>PUFBEG
STA IND+l
WRITE3 LDY #9
LDA (IND),Y
BEQ WRITE7 ;Ctr1-9
CMP +#$FF ;Endmark
BNE WRITE4
RTS ‚Exit
WRITE4 AND #$7F
CMP #$@D ;Rtn?
BEQ WRITES ‚Ja!
CMP _ #$29 :ctr1?
BCS WRITE8S ;Nein!
Tab: $1® $28 nach Rtn entfällt
Tab: $1® $XX = $XX-$29 Spaces
(Ctrl-Zeichen außer $19 = Tab
und $®D = Return ignorieren!)
EZ Zur Zu Zu Zu >
CMP _ #$19 ; Tab
BNE WRITE7
INY ‚IND+1
LDA (IND),Y ‚Anzahl
CMP_ #$21
BCC WRITE6 ‚10 29!
Mindestens 1 Space
TAX ‚Anzahl
WRITE5E LDA #$2® ‚Space
JSR COUT
DEX
CPX #$29
BNE WRITES
*
* 10 20 am Zeilenanfang
x”
WRITE6 JSR INCI ;2mal
WRITE7 JSR INCI ;lmal
JMP WRITE3
*
* Normale ASCII-Zeichen + Return
%*
WRITE8 JSR COUT
JMP WRITE7
*
* Zeiger erhöhen
“
INC1 INC IND
BNE INC2
INC IND+1
Wenn IND+l = LOMEM = $8Fßß,
dann Programmabbruch. Dieser
Fall kann wegen $8Eßß:FF jedoch
praktisch nicht vorkommen.
“RK KKR
03C9: LDA IND+1
B3CB: CMP #>LOMEM
BSCD: BCS STIRB
BSCF: RTS
208 Bytes
Hinweis
Die Peeker-Sammeldisk enthält die „komfortableren' Versionen
PASTOPRO.1D für 1-Drive-Besitzer und PASTOPRO.2D für 2-Drive-
Besitzer.
Peeker 7/85
LisaunddieFolgen
von Ulrich Stiehl
Als ich im März-Heft mitteilte, daß die Lisa
nicht mehr „produziert werden wird“ (Fu-
tur I), waren offenbar die Würfel bereits
gefallen. Ursprünglich gab es von der Lisa
mehrere Versionen, nämlich insbesondere
Lisa 1 mit Diskettenlaufwerk, Lisa 2 mit
5M-Festplatte und Lisa 2 mit 10M-Fest-
platte. Zu Beginn dieses Jahres ließ man
alle Versionen mit Ausnahme der Lisa 2/
10 fallen, die in Macintosh XL umgetauft
wurde. Damit sollte zum Ausdruck ge-
bracht werden, daß der Macintosh eigent-
lich eine kleine Lisa ist. Diese Umbenen-
nung und Verquickung mit dem Macintosh
dürfte sich im nachhinein als Bumerang
erwiesen haben, weil man sich wenig spä-
ter dazu entschließen mußte, auch den
Macintosh XL = Lisa 2/10 aus dem Pro-
gramm zu nehmen. Der oberflächliche Be-
obachter denkt nämlich jetzt, daß mit dem
Macintosh XL ein Macintosh eingestellt
worden ist. Mutato nomine de te fabula
narratur...
Im „Handelsblatt“ vom 30.5. steht, daß
wegen der Produktionseinstellung der Lisa
über 1600 Arbeitnehmer entlassen wer-
den mußten, was die Börsenspekulanten
natürlich nicht unbeeindruckt ließ. Norma-
lerweise wird der „Abgang“ eines Mikro-
computers nur noch von den Chronisten
der Wirtschaftsblätter vermerkt. Ich halte
es jedoch nicht für angebracht, in einer
Mikrocomputer-Zeitschrift, die sich aus-
schließlich mit Apple-Computern befaßt,
stillschweigend zur „Tagesordnung“
überzugehen. Daß dem „Bürocomputer
der Zukunft“, wie er in der Werbung in
solchen und ähnlichen Slogans apostro-
phiert wurde, letztlich doch kein Lorbeer-
kranz geflochten wurde, ist meines Erach-
tens auf drei Gründe zurückzuführen:
1. Die Lisa war einfach zu teuer. Dies blieb
natürlich auch der Firma Apple nicht ver-
borgen, so daß der Anfangspreis von ca.
DM 30000,- im Laufe des kurzen und trau-
Peeker 7/85
rigen Lebens der „Mona Lisa“ sukzessive
gesenkt wurde, bis man zum Frust der
wagemutigen Erstkäufer am Ende bei ei-
ner Preisreduzierung von ca. 70% ange-
langt war.
2. Die für den Macintosh XL alias Lisa und
den Macintosh konzipierte „Benutzer-
schnittstelle“ mit Ikonen und „Klickiklick“
ist nach wie vor heftig umstritten. Hier
prallen Welten glühender Verfechter und
brüsker Gegner aufeinander. Zu welcher
Seite ich gehöre, ist Ihnen ja bekannt.
3. Die Lisa wurde nicht für IBM-(Großanla-
gen-)kompatibel gehalten. Wie so oft im
Leben, war hier nicht eine Sache, sondern
die Meinung über eine Sache entschei-
dend. Die Lisa wurde — ähnlich wie der
Macintosh — von Apple bewußt als IBM-
PC-unkompatibles Gerät konzipiert. Aber
wer glaubte schon, daß man einen IBM-
PC-unkompatiblen Mikrocomputer an eine
IBM-Mainframe hätte anschließen können.
Und wer sollte dies tun? Die Firma IBM
etwa? Folgerichtig war dem Macintosh XL
der Einzug in die von IBM-Rechnern be-
herrschte Bürowelt versagt.
In den USA haben praktisch nur noch zwei
Mikrocomputer-Produzenten das Sagen,
nämlich auf der einen Seite IBM und auf
der anderen Seite Apple. Beide vereinigen
auf sich einen Marktanteil von weit über
60%, so daß alle übrigen Produzenten
bereits „aus dem Rennen“ sind. (In
Deutschland liegen die Dinge etwas an-
ders, weil hierzulande Commodore nach
wie vor eine sehr starke Marktposition
hat.) Während jedoch Apple ausschließlich
Mikrocomputer produziert, ist für IBM der
PC-Bereich bislang noch ein „Nebenge-
schäft“. Seit der Lisa, die vor zwei Jahren
auf den Markt kam, versucht Apple mit
aller Gewalt, in denjenigen Bereich der
Büro-EDV einzudringen, der früher von
der mittleren Datentechnik beherrscht
wurde. Dabei scheute man sich in den
Werbekampagnen des Jahres 1984 nicht,
“kurzberichte 44
No Orchids für Miss Lisa
das Orwellsche IBM-Ungeheuer mit der
„brave new world“ der Lisa und des Mac-
intosh zu kontrastieren. Für Außenstehen-
de stellen sich diese Kontrahenten als ein
behäbig schlafender Gulliver und ein hek-
tisch agierender Liliput dar. Immer dann,
wenn er von Liliput an der Nase gezupft
wird, wälzt sich Gulliver zur Seite und zer-
malmt dabei irgend etwas unter sich. Heu-
te war es die Lisa. Hoffen wir, daß Liliput
morgen etwas mehr aufpaßt.
In dem zitierten Handelsblatt-Beitrag wird
bereits das Menetekel der Übernahme
durch eine Fremdfirma an die Wand ge-
malt. Dies erscheint mir abwegig, da Apple
nach wie vor ein gesundes Unternehmen
ist. Die weitere Entwicklung von Apple
hängt im übrigen meines Erachtens weni-
ger vom Erfolg des Macintosh ab. Das
Ausscheiden von Steve Wozniak „in ge-
genseitigem Einvernehmen“ zeigt, daß
man immer noch nicht einsehen will, daß
der Apple Il weiterentwickelt werden muß,
und zwar so bald wie möglich, denn nach
dem Lisa-Debakel ertönte der Gong für
die letzte Runde um die Vorherrschaft auf
dem amerikanischen Mikrocomputer-
markt.
Der Apple II läßt sich mit dem VW Käfer
vergleichen, der ebenfalls jahrelang lief
und lief. Irgendwann mußte er jedoch
durch den VW Golf ersetzt werden, denn
die Wünsche der VW-Fahrer waren ge-
wachsen: etwas mehr PS, etwas mehr
Komfort, etwas weniger Verbrauch usw. —
kurzum alles etwas besser. Die Betonung
liegt auf „etwas“, denn die Firma Apple
macht seit geraumer Zeit den Fehler, über
das Ziel hinauszuschießen. Wenn wir „im
Bild“ bleiben, so ist der Macintosh das
Elektroauto von übermorgen. Jedermann
weiß oder ahnt zumindest, daß in einigen
Jahrzehnten Vergaserautos durch Elektro-
autos verdrängt sein werden. Doch wer
kauft heute ein Elektroauto? Und warum
nicht? Ähnlich ist es beim Macintosh. Je-
dermann weiß, daß es in nicht allzuferner
67
Zukunft nur noch Grafikcomputer mit mon-
strösen Betriebssystemen geben wird.
Doch wer kauft heute einen solchen Com-
puter? Und warum nicht?
Was wir heute brauchen, ist ein gradueller
Übergang vom Apple Ile/liIc zum verbes-
serten „Apple Iig“. Einige Beispiele:
1. 80-Zeichenkarte: Die Schriftqualität ist
beim Apple Ile brauchbar, aber wie die
Sitze des alten VW Käfer verbesserungs-
würdig. Bit-Map-Grafik wäre keine Lösung
für die Gegenwart, denn sonst würde der
Apple II wie der Macintosh mit seinen 22K
Bildschirmspeicher den Prozessor lahmle-
gen. Ein sinnvoller Mittelweg wäre eine
Schriftqualität in der Art der Ultraterm. Die
Firma Videx hat es hier vorgemacht. Apple
könnte es nachmachen.
2. Prozessor: Der 1-MHz-65C02 ist
brauchbar, aber doch für manche Applika-
tionen zu „käferhaft“. Es muß nicht gleich
ein 68000 oder ein sonstiger 16- oder gar
32-Bit-Prozessor eingebaut werden. Ein
sinnvoller Mittelweg wäre hier ein 65C02C
in der Art der Acceleratorkarte. Die Firma
Titan hat es hier vorgemacht. Apple könnte
es nachmachen.
3. Laufwerke: Ein 140K-Laufwerk ist wie
der Kofferraum des alten VW Käfer. Zur
Erinnerung: Er war vorne unter der runden
Haube. Eine Reihe von Firmen hat gezeigt,
daß auch 80-Spur-Laufwerke einwandfrei
mit dem Apple Il funktionieren können.
Apple könnte es nachmachen.
Der Apple Il ist deshalb so erfolgreich, weil
er „erzkonservativ“ ist. Nur wenige möch-
ten ein hypermodernes Gerät kaufen, weil
sie mit Recht befürchten, daß es über kurz
oder lang wieder vom Markt verschwun-
den sein wird (siehe Lisa). „Lieber lange
einen Macki als kurz einen Mecki“, lautet
die Devise. Trotzdem muß eine graduelle
Weiterentwicklung stattfinden, damit sich
der Apple II den sich ändernden Verhält-
nissen anpaßt. Bleibt zu hoffen, daß die
Firma Apple nicht wieder „graduell“ mit
„abrupt“ verwechselt.
(Anmerkung: „No Orchids for Miss Lisa“
ist eine Anspielung an das Buch „No Or-
chids für Miss Blandish“ von J.H.Chase.
In diesem „Top-10-Krimi“ hat sich eine
junge Dame namens Blandish (alias Lisa)
zum Schluß selbst aus dem Fenster ge-
stürzt, weil sie die Realität nicht mehr er-
tragen konnte.) 5
68
Sie müssen
käalkulatemen erstellen ...
Se müssen
Rechnungen Schreiben...
Sie müssen Schnell eın
Angebet wusanmwenskellen...
Sie brauchen Eıne zuver-
lässine Lagervervaltuug
|
\ [LI
Dam braucheu Sie
HandMac
Das Programm für das Handwerk.
® das Ihnen diese Arbeiten abnimmt.
© clas peziel für Sie in Deutschland
entwickelt wurde
® das Sie fort benutzen können ,
olue wehrwöchige Schulung ,
Aue Sitenstar andlbuch
(äuff auf Apple Macintosh it es nur
im autorisierten Tachhahdel
Jufonushou: Copy team qmbh
e Sschuhstr. 3
&520 erlangen
OUSA— W383
Apple urd Macintosh nd eingehagene \Iusenzsichen des Apple Coupuher Une.
ASSEMbILER ‚’
Hex-Dez-Konvertierung für 32-Bit-Zahlen
von H. Grumser
Zuweilen stellt sich das Problem, größere
Integerzahlen von einem Applesoft-Pro-
gramm an eine Assemblerroutine zu über-
geben. Diese Schwierigkeit tritt z.B. bei
der Bearbeitung umfangreicher Random-
Access-Dateien auf, bei denen die absolu-
te Dateiposition oftmals 65535 übersteigt.
Die USR-Funktion gestattet zwar die
Übergabe von Fließkommazahlen. Die
Umwandlung in eine Hex-Zahl, die mehr
als zwei Bytes umfaßt, ist jedoch mit Hilfe
der Interpreter-Routinen nicht mehr mög-
lich.
Die beiden vorgestellten Routinen FPHEX
und HEXFP erlauben die Umwandlung der
im Haupt-Fließkomma-Akkumulator abge-
legten Zahl in eine 4-Byte-Hex-Zahl und
umgekehrt. Diese Zahl kann durch die
USR-Funktion an ein Assemblerprogramm
übergeben und entsprechend verarbeitet
oder ausgewertet werden, um sie dann
gegebenenfalls wieder an das Applesoft-
Programm zu übertragen.
Beide Routinen sind völlig unabhängig und
nicht an ein Applesoft-Programm gebun-
den. Es wäre somit vorstellbar, die im Ap-
plesoft-Interpreter enthaltenen FP-Routi-
nen in einem reinen Binärprogramm zu
benutzen; als Schnittstelle zwischen FP-
und Integer-Arithmetik könnten dann die
beiden Konvertierungsroutinen aufgerufen
werden.
Auf die Arbeitsweise der Programme soll
hier nur kurz eingegangen werden. Bei der
ungepackten Form von FP-Zahlen kann
der Integer-Wert im wesentlichen dadurch
gefunden werden, daß die Mantisse (FAC
$009E-$00A1) so lange verschoben wird,
bis der Exponent (FACEXP $009D) den
Wert2 T 32 annimmt. Die vier Mantissen-
bytes enthalten dann die gewünschte
Hex-Zahl. Da die Null nicht in der Mantis-
se, sondern im Exponenten realisiert wird,
muß sie gesondert behandelt werden. Das
fünfte Mantissenbyte (FACRND $00AC)
dient der genaueren Darstellung bei der
Auswertung von Polynomen und darf we-
gen der hier eventuell aufretenden Links-
verschiebung nur eine Null enthalten. Das
Vorzeichen (FACSIGN $00A2) bleibt in
beiden Fällen unberücksichtigt.
Peeker 7/85
CONVERT
oo oı9V u umdHr
VALTYP ‚Typ des letzten Ausdrucks
FACEXP EQU $9D ‚Exponent von FAC
FAC EQU $9D ;‚Haupt-Fließkomma-Akku
FACSIGN EQU $A2 ;‚FAC-Vorzeichen
FPTEMP EQU $A4 ‚Hilfsregister
FACRND EQU $AC ;FAC-Rundungsstelle
CHRGET EQU $Bl ‚Zeichen aus Quelltext holen
AMPER EQU $3F5 ;&-Vektor
STROUT EQU $DB3A ‚String ausgeben
OUTDO EQU $DB5C ‚Zeichen ausgeben
MSMERR EQU $DD76 ;"TYP MISMATCH ERROR"
FRMEVL EQU $DD7B ‚beliebigen Ausdruck auswerten
SYNERR EQU $DECY ;"SYNTAX ERROR"
NORMFAC EQU $ES2E ;FAC normieren
ZEROFAC EQU $ES4E :® -> FAC
OVFLERR EQU $E8D5 ;"OVERFLOW ERROR"
FACSL EQU $ESF® ;FAC-Mantisse Links-Shift
FOUT EQU $ED34 ;FAC in String umwandeln
PRBYTE EQU $FDDA ‚Byte ausgeben
ORG $399
0BJ $399
* Initialisierung
LDA #>CONVRT ;&-Vektor
LDX #<CONVRT ; auf CONVeRT
STA AMPER+2 ‚ setzen
STX AMPER+1
RTS
* Konverierung nach hex oder dezimal
CONVRT CMP_ #'D' ;Dezimalausdruck?
BEQ CONDEC
CMP #'H' ;‚Hex-Zahl?
BEQ CONHEX
JMP SYNERR ‚ansonsten "SYNTAX ERROR"
* Konvertierung von dezimal nach hex
CONDEC JSR CHRGET ;‚'D' überspringn
JSR FRMEVL ‚Ausdruck auswerten
BIT VALTYP ;numerisch?
BPL EVLOK ‚ja, dann weiter
JMP MSMERR ‚sonst "TYP MISMATCH"
JSR FPHEX ‚in 32-Bit-Integer umwandeln
LDA rg"
JSR OUTDO ‚"$" ausgeben
LDX #9
HEXOUT LDA FAC+1,X ‚alle 4 Bytes
JSR PRBYTE ;‚ ausgeben
INX
CPX #4
BNE HEXOUT
RTS
* Konvertierung von hex nach dezimal
CONHEX LDA #9 ‚alle
STA FAC+1 ‚ 4 Bytes
STA FAC+2 ; nullsetzen
STA FAC+3
STA FAC+4
NXTDIG JSR CHRGET ‚Zeichen holen
BEQ DECOUT ;EOS, dann FAC ausgeben
EOR #%00110000 ;Bit 4 & 5 invertieren
69
Bei der Benutzung in einem reinen As-
semblerprogramm sollte der Sprung nach
$E199 durch eine andere Fehlerbehand-
lungroutine ersetzt werden. Beide Pro-
gramme sind relokativ.
Das Beispielprogramm CONVERT zeigt
eine Anwendung der beiden Routinen. Die
Umrechnung von Hexadezimal- in Dezi-
malzahlen ist mühselig und zeitraubend.
Mit Hilfe dieser kurzen Ampersand-Utility,
die durch „BRUN CONVERT” gestartet
wird, kann von Applesoft aus mit „&D“
eine Hex-Zahl ausgegeben werden, wobei
auf „D“ (für dezimal) jeder beliebige Aus-
druck, also auch Variablen, folgen kann.
Das Ergebnis wird im 8stelligen Hex-For-
mat (32 Bits) ausgegeben. So erhält man
z.B. auf die Eingabe „&D 10 &* 10° die
Ausgabe „$00000064*.
Für den umgekehrten Fall ist an Stelle des
„D“ ein „H“, gefolgt von einer bis zu 8
Stellen (= 32 Bits) langen Hex-Zahl, ein-
zugeben. Wird z.B. „&H3E8“ eingetippt,
erscheint eine Zeile tiefer die Zahl 1000.
Die Benutzung hexadezimaler Ausdrücke
wie „H3E8 + H64“ ist nicht erlaubt.
Beide Befehle können auch im laufenden
Programm verwendet werden, wobei dar-
auf hingewiesen sei, daß die Routine
selbst keinen Zeilenvorschub (Return)
sendet, so daß man mehrspaltige Konver-
tierungstabellen anlegen kann. Die Ausga-
be auf Drucker oder Diskette ist möglich.
Die Syntax wurde gewählt, um eine Ein-
bindung in andere Ampersand-Utilities zu
ermöglichen.
‚Ziffer?
‚ja, dann übernehmen
‚in Bereich $FA-$FF bringen
‚war Zeichen zw. 'A'-'F'?
;ja, dann übernehmen
‚ansonsten "SYNTAX ERROR"
‚rechtes Nibble
‚ nach links
‚ schieben
;‚um ein Nibble
‚ nach links
(sowohl Akku
als auch
FAC)
‚nächstes Bit
‚nächstes Zeichen
;in FP-Zahl umwandeln
‚in String umwandeln
‚String ausgeben
:FAC < 1?
‚nein, dann weiter
‚ansonsten
‚ alle 4 Bytes
;‚ nullsetzen
tortig
‚größer 2 T 32?
‚nein, dann weiter
‚sont "OVERFLOW"
‚negativer Wert von Shifts
;‚FP-Hilfsregister
‚Stellenwertigkeit
; berichtigen
- $Al) -> FAC
‚Exponent
‚ setzen
;Rundungstelle
‚ nullsetzen
;pos.
‚alle
‚ Stellen
; Null?
Vorzeichen
‚ja, dann Sonderbehandlung
‚normieren, fertig
0349: C9 PA 73 CMP #19
034B: 90 9 74 BCC SHIFT
034D: 69 88 75 ADC +$88
BÖ3AF: C9 FA 76 CMP_ #$F@+1®
0351: BP 93 77 BCS SHIFT
0353: AC C9 DE 78 JMP SYNERR
0356: PA 79 _SHIFT ASL
0357: ®A 80 ASL
0358: DA 8l ASL
0359: PA 82 ASL
B35A: A2 03 83 LDX #3
B35C: PA 84 NXTBIT ASL
035D: 26 Al 85 ROL FAC+4
D35F: 26 A® 86 ROL FAC+3
0361: 26 9F 87 ROL FAC+2
0363: 26 9E 88 ROL FACH+l
0365: CA 89 DEX
0366: 1® FA 99 BPL NXTBIT
0368: 30 D8 91 BMI NXTDIG
D36A: 20 94 03 92 DECOUT JSR HEXFP
d36D: 20 34 ED 93 JSR FOUT
0370: AC 3A DB 94 JMP STROUT
95
96 x FAC -> 32-Bit-Integer ($9E - $Al)
97
0373: A5 9D 98 FPHEX LDA FACEXP
0375: 39 @B 99 BMI NOTZER
0377: A9 O0 109 LDA #9
0379: 85 9E 101 STA FACH
037B: 85 9F 192 STA FAC+2
B37D: 85 A® 103 STA FAC+3
D37F: 85 Al 194 STA FAC+4
381: 69 105 RTS
0382: C9 Al 106 NOTZER CMP +#$80+33
0384: 90 ®3 107 BCC NOOVFL
0386: AC D5 E8 198 JMP OVFLERR
0389: 69 69 109 NOOVFL ADC +#$80-32
d38B: AB 99 11® LDY #9
038D: 84 A4 111 STY FPTEMP
B38F: A2 9D 118 LDX #FAC
0391: AC FO ES 113 JMP FACSL
114
115 x 32-Bit-Integer ($9E
116
0394: A9Y AP 117 HEXFP LDA +$89+32
0396: 85 9D 118 STA FACEXP
0398: A9Y 99 119 LDA #9
D39A: 85 AC 129 STA FACRND
B39C: 85 A2 121 STA FACSIGN
039E: A5 9E 122 LDA FAC+l
D3Aß: 05 9F 123 ORA FAC+2
B3A2: 05 AB 124 ORA FAC+3
D3AA: 05 Al 125 ORA FAC+4
D3A6: FO 03 126 BEQ ISZER
03A8: AC 2E E8 127 JMP NORMFAC
Ö3AB: AC AE ES 128 ISZER JMP ZEROFAC
174 Bytes
Peeker-Sammeldisk +7
zu Heft 7/1985, einzeln DM 28,—
im Fortsetzungsbezug DM 20,—
A 004 PYRAMID.PITTY
T 084 IPYR.PIIIYO
1063 I PYRPIT!Y.JI
B 018 PYFRPITIY.O
B 016 PYRPITIY\I
B 024 PYR.PITTY.BACK
B 026 PYR.PITTY.SHAPE
T 016 T.MEGAWARP.REL
B 002 MEGAWARP.REL
T 017 T.MEGAWARP.9900
B 002 MEGAWARP.9900
T 004 T.SPEEDTEST
B 002 SPEEDTEST
A 016 FORMAT
T 039 T.FORMAT.OBJ
B 005 FORMAT.OBJ
A 033 BITEDITOR
B 018 NORMAL
B 018 FEIT
B 018 FETT.INVERSE
;FAC nullsetzen ‘
A 007 PASTOPRO.1D
A 007 PASTOPRO.2D
T 015 T.PASTOPRO.O
B 002 PASTOPRO.O
T 014 T.CONVERT
B 002 CONVERT
T 010 T.VORLESER
B 003 VORLESER
Hüthig Software Service - Postfach 102869 - 6900 Heidelberg
70
Peeker 7/85
Vorlesestunde
Apple und S.A.M., ein hilfreiches Gespann
von Dr. Jürgen B. Kehrel
Sie haben aus einer Zeitschrift ein Assem-
blerlisting oder einen Hex-Dump mühsam
abgetippt, doch irgendwo hat sich ein Feh-
ler eingeschlichen. Jetzt müssen Sie Ihren
Speicherauszug mit dem geschriebenen
Text vergleichen. Ihr Blick wandert zwi-
schen Bildschirm und Papier hin und her,
der Zeigefinger hält die Position fest. Doch
immer wieder kommen Sie aus dem Tritt.
— Wenn Sie diese Situation jemals ken-
nengelernt haben, ist das folgende Pro-
gramm die Erlösung von den erlebten
Qualen.
Im Peeker 2/84 wurde die Sprachkarte
S.A.M. (Software Automatic Mouth) von
„Don’t Ask Software“ vorgestellt, durch
die Sie beliebige (vornehmlich englische)
Texte mit Hilfe der zugehörigen Software
über einen Lautsprecher ausgeben kön-
nen. Ich kam bald auf den Gedanken, mir
die Speicherauszüge von S.A.M. vorlesen
zu lassen. Ein kurzes Assemblerpro-
gramm und die RECITER-Software mach-
ten dies schnell möglich, doch waren die
Buchstaben A-F sehr schlecht verständ-
lich. Außerdem belegten S.A.M. und RE-
CITER fast den halben Speicher. Mein
nächster Versuch wurde länger, benötigte
dafür aber nur noch das S.A.M.-Modul, da
ich diesmal Phoneme benutzte.
S.A.M. liegt ab $7161 im Speicher, also
Peeker 7/85
assemblierte ich meinen Teil direkt dar-
unter.
Wenn Sie nacheinander „VORLESER“
und „SAM“ laden (BLOAD), können Sie
beide zusammen mit „BSAVE DUMP-
VORLESER, A$7050, L$24B0“ abspei-
chern und später als einen funktionsfähi-
gen File mit „BRUN DUMPVORLESER"
starten.
Ihre Speicherauszüge erhalten Sie weiter-
hin so, wie es im Benutzerhandbuch des
Apple beschrieben wird: (hexadezimale)
Startadresse.Endadresse <Return>. Zu-
sätzlich zur Bildschirmausgabe spricht
S.A.M. nun alle Hex-Zahlen mit.
Programmbeschreibung
Alle Ausgaben des Apple werden norma-
lerweise durch das DOS gelenkt, bevor sie
z.B. zum Bildschirm gelangen. Genau an
dieser Stelle schaltet sich „VORLESER"“
dazwischen. Das Startprogramm überträgt
den Beginn des Hauptprogramms (Adres-
se von VEKTOR) in den DOS-Ausgabe-
Vektor (nur DOS 3.3, nicht ProDOS!) und
springt in den Monitor. Bei allen „Nicht-
DOS“-Ausgaben verzweigt nun das
Hauptprogramm selber zur Bildschirmaus-
gabe (JSR COUTI1), versorgt aber zusätz-
lich S.A.M. mit den nötigen Informationen.
Punkte, Striche, Leerzeichen und Returns
werden in Pausen umgewandelt, um die
Pr ASSEMbILER Be
Verständlichkeit zu erhöhen. Sie können
die Pausen vergrößern oder verkleinern,
indem Sie nach $70D7 in den LDA-Befehl
einen größeren oder kleineren Wert als
$20 schreiben.
Alle gültigen Hex-Zahlen werden mit einer
Routine herausgefiltert, die ich teilweise
dem Apple-Monitor ($FFB1-$FFBC) ent-
liehen habe. Alle übrigen Zeichen werden
nicht bearbeitet (EXIT). Durch die Über-
prüfung werden gleichzeitig die Hex-Zah-
len „O“ bis „F“ in die Bytes $00 bis $OF
umgeformt. Da jeder Tabelleneintrag der
Phoneme 8 Bytes lang ist, werden die
Zahlenwerte für die indizierte Adressie-
rung mit 8 multipliziert. Vorher wird noch
eine 1 addiert, da die Einträge rückwärts
gelesen werden. Der passende Tabellen-
teil wird in den S.A.M.-Puffer nach $9500
übertragen und dann durch JSR SAM aus-
gesprochen. Wenn Ihnen irgendeine Aus-
sprache nicht gefällt, können Sie den Ta-
belleneintrag ändern, solange die Summe
der voranstehenden Nullen und der Pho-
neme gleich 8 ist. Maximal sind 8 Phone-
me ohne Null zulässig.
Die Befehle am Anfang und Ende des
Programms retten nur die relevanten Regi-
ster und Speicherstellen, da S.A.M. sie
durch seinen Betrieb zerstört.
So, und nun wünsche ich Ihnen erfolgrei-
che Vorlesestunden.
71
VORLESER BPL
2 \ LDA
En ne LDX
“ VORLESER ” LDY
* von Dr. Jürgen B. Kehrel * RTS Ende
* 1985 * ”
ak WARTEN LDX +#$c8
j j ! WARTLI LDA #$29
Liest Hex-Dumps des Applespei- JSR WAIT
chers vor, wenn in Slot 4 eine DEX
;Warte-
‚schleife
oo oı9 had
“*RKKKKK KK
ORG
EQU
EQU
EQU
EQU
EQU
EQU
JMP
HEX
HEX
HEX
DS
CLD
LDA
STA
LDA
STA
JMP
*
*
VEKTOR
SPRECHEN
EXIT
EX1
$7059
$9599
$FDF®
$FCA8
$FF69
$94F6
$3C
START
d9
09
d9
$4
#<VEKTOR
$AA53
#>VEKTOR
$AA54
MONZ
ASAVE
XSAVE
YSAVE
#5
Al,X
AISAVE,X
LOOP
ASAVE
COUTL1
+$89
#+$8D
WARTEN
+$AQ
WARTEN
#$AD
WARTEN
#+$AE
WARTEN
+$BQ
#$QA
ZAHL
+$88
#+$FA
EXIT
#$0F
#501
#509
TAB,Y
SPRECHEN
PUFFER,X
+$08
LADEN
+$8D
PUFFER,X
SAM
+$03
AISAVE,X
Al,X
Vorleser liegt direkt unter SAM
;‚Ausgabep.
‚Bildschirm
‚Zeitverzög.
;Monitor
‚Einsprung
‚Zero-Page
‚Register
‚und div.
‚Speicher
‚retten
‚Binärmode
;DOSCSWL
; DOSCSWH
‚retten
‚ausgeben
Bit. 7
‚Return
De 1 Be 1 |
’
3
;c 1!
‚;A-F
;Z000W111l
‚Tabellenpos.
‚ausrechnen
3)
‚bis $99
‚Return
‚Speicher u.
‚Register zu-
‚rückschreiben
7DEB:
7dEl:
70EA:
70E8S:
7®EB:
79EE:
TOF®:
T7OF3:
T7OFA:
7OF7:
TOFB8:
TOFA:
TOFD:
7199:
71983:
7186:
71908:
710B:
71BE:
7119:
7112:
7119:
Tlle:
7ı1B:
7129:
7122:
7129:
7128:
TI2B:
T712ZE:
7138:
7133:
7136:
7138:
TISR:
713D:
7149:
7142:
7145:
7148:
7149:
714C:
7158:
7153:
7156:
7158:
T15B:
TIOE:
TIEF:
272 Bytes
HI K* %* %*
S.A.M-Karte vorhanden und das BNE
Modul SAM ab $7161 geladen ist.
BEQ
HEX
ASC
HEX
ASC
HEX
ASC
HEX
ASC
HEX
ASC
HEX
ASC
HEX
ASC
ASC
HEX
ASC
WART1
EXIT
Liste der Phoneme
jeweils 8 Bytes lang
9
"WORSYIZ" ;Zero
DHDnnp
"NSHAW"
BDDHnnnp
"SWUT"
D009
"SYIRHT'" ‚Three
"WWW loJV)
"R5EHOF"" ‚Four
DDnnnp
"VSYAF" ;Five
uluD)
"SKSHIS" ;Six
"NXIVSHES" ;Seven
Bonn
"TTTEYE" ;Eight
DDn00H
"NSYAN" ;Nine
DDnnnp
"SHIYE'"
nnnn
"SYIYIB"
DonH
"SYIYIS"
np
"Syızion® ;D
BnDnnR
WSYIYI®
lu Tol]0]V)
"FSHE"
Nachtrag zu RAM.FRE
Das Programm RAM.FRE aus Peeker 1/2-85, Seite 33 ent-
hält einen schwerwiegenden Fehler und läuft daher nur in
wenigen Fällen korrekt.
Die fehlerfreie Version wird
scheinen.
im nächsten Peeker er-
Peeker 7/85
Leserbriefe
DOS-Mover
Gratuliere zur Peeker! Ich habe
noch keine bessere Apple-Zeit-
schrift gesehen. Machen Sie wei-
ter so! Ein Thema was mich beson-
ders interessiert, ist das Verschie-
ben des DOS in die LC: ein DOS-
Mover, in allen Einzelheiten erklärt.
Ivo Eschrich, Göttingen
(Ein neuer DOS-Mover für Stan-
dard-DOS 3.3 ist in Vorbereitung.
us)
BASIS 108
Nachdem ich mit meinem ITT-
2020 nicht gerade völlig zufrieden
war, besorgte ich mir 1982 einen
BASIS 108 (Hersteller Basis Mi-
crocomputer in Münster; der ehe-
malige Apple-Generalimporteur).
Für jene, die das Gerät noch nicht
kennen: Dieser Kompatible hat
130K RAM, 12K ROM (nicht mitge-
liefert), parallele und serielle
Schnittstellen, Z80, 80 Zeichen,
SW-, PAL- und RGB-Ausgang,
Platz für 2 „dicke“ Laufwerke im
Gehäuse, Tastatur mit Cursor-
block, numerischem Block, 15
4fach belegbaren Funktionstasten,
sowie die Möglichkeit, IRQs zu er-
zeugen. Trotzdem sind noch die
Slots 2-7 frei verfügbar. Leider ist
deutsche Qualität nicht ganz billig.
Ich rüstete den Computer mit den
damals noch fehlenden zweiten
64K RAM aus, setzte mir die Ap-
plesoft-EPROMSs ein und war völlig
zufrieden. Als sich ein Bekannter
später ebenfalls solch ein Gerät
zulegte, fiel mir dessen Betriebs-
anleitung auf (ähnlich „Apple Be-
nutzer Handbuch“). Da ich nur ei-
ne vorläufige Ausgabe bekommen
hatte, fragte ich bei Basis an, ob ich
solch ein Exemplar kaufen könnte.
Wenige Tage später bekam ich ko-
stenlos eines geliefert. Leider
häuften sich später die Gerüchte,
daß die Firma nicht mehr existieren
würde. Das mag kein Computerbe-
sitzer gerne hören. Von einem Ba-
sis-Besitzer aus Münster erfuhr ich
vor knapp einem Jahr, daß es die
Firma unter neuem Namen einige
Straßen weiter wieder gibt. Sie
heißt jetzt Basis Computersysteme
GmbH. Es störte mich schon eini-
ge Zeit, daß bei dem Drucker-
PROM die Tabulierung nicht richtig
funktionierte. Die jüngeren Exem-
plare hatten diesen Bug nicht
mehr. Leider konnte ich es nicht
selbst ersetzen, da ich niemanden
Peeker 7/85
kenne, der schmale PROMs mit 20
Pins (ähnlich Controller--PROMs)
brennen kann. Außerdem war
mein F83-EPROM noch nicht in der
Lage, softwaremäßig zwischen 40
und 80 Zeichen umzuschalten. Da
ich den Computer nur mit 66K
RAM erhalten hatte, fehlte mir
noch die Pseudodisk-Software für
das UCSD-System. Diese Proble-
me beschrieb ich in einem Brief an
die „neue“ Firma Basis mit der
Frage, ob ich die Bauteile und die
Software erwerben könne. Eine
halbe Woche später fand ich im
Briefkasten einen Umschlag, in
welchem neben einem Begleit-
schreiben bereits eine ZAP-Dis-
kette mit der gewünschten Soft-
ware und die beiden PROMs wa-
ren! Ich finde, daß eine derartige
Kulanz Vorbild sein sollte für viele
andere Firmen (inkl. Apple selbst).
Tim Berndt, Büdelsdorf
Erphi-Controller
Zu Ihrer Frage in Peeker 2/84, ob
bei Testberichten auch über die
Schattenseiten des Produkts be-
richtet werden sollte, meine ich,
daß dies unbedingt geschehen
sollte. Nur wenn die positiven und
negativen Seiten des jeweiligen
Produkts beschrieben werden, ist
der potentielle Käufer vor unliebsa-
men Überraschungen einigerma-
Ben sicher. Leider werden die
Schattenseiten des Erphi-Control-
lers in Peeker 4/85 nicht erwähnt.
Deshalb möchte ich hier über die
Nachteile dieses Controllers be-
richten. Die höhere Speicherkapa-
zität der Laufwerke kann nur aus-
genutzt werden, wenn der Control-
ler in Slot 6 steckt und auch von
Slot 6 gebootet wird. Ist dies nicht
der Fall, können nur 35 Tracks ver-
wendet werden. Da ich von einer
an Slot 7 angeschlossenen Hard-
disk bootete, konnte ich auf Floppy
nur lächerliche 140K verwenden.
Bei den Floppy-Controllern, bei
denen das Image der Betriebssy-
steme auf der Diskette angepaßt
wird, treten diese Probleme nicht
auf, da man das angepaßte Be-
triebssystem auf die Harddisk ko-
pieren kann, was bei dem Erphi-
Controller nicht geht. Auch die
Hardware dieses Controllers ist
problematisch. Es werden an der
Schnittstelle zu den Standardlauf-
werken (Shugart-Bus) Leitungs-
treiber verwendet, die den bei 150
Ohm Pull-Up-Widerständen not-
wendigen Strom nicht liefern kön-
nen. Es wird empfohlen, Pull-Up-
Widerstände mit 220 Ohm oder
mehr zu verwenden. Es wird je-
doch verschwiegen, wie ein im
Laufwerk eingelötetes Netzwerk
mit 150 Ohm gegen 220 Ohm aus-
getauscht werden kann.
Ulrich Allgeier, Stuttgart
lle-80-Z/Z-Karte
Ich bin seit März 1983 ein mehr
oder weniger zufriedener Besitzer
eines Apple Ile. In technischen
Fragen wurde ich von meinem
Händler immer sehr gut beraten.
Lediglich auf die Frage nach der
doppelt hochauflösenden Grafik,
die ich nach Lektüre eines Artikels
in der Zeitschrift „nibble“ von 8/84
stellte, wußte er nicht weiter und
gab mir die Telefonnummer der
Firma Apple.
Nach einer peinlichen Überprü-
fung, ob ich denn einen „Original-
Apple“ hätte, wo ich ihn gekauft
hätte (hoffentlich ein autorisierter
Händler!) usw. versprach der PR-
Mann mir, daß er mich nach einer
Beratung mit einem Techniker zu-
LISIKEAIKIKIUN-RIAIMI-KIAIRITIE
X Kompatibel zur Standard 16K Language Card
*% Datensicherung nach Abschalten
* PSEUDO-ROM (z.B. Rom-Edit etc.)
*% leichter Einbau
* fuer alle Slots verwendbar
125K AKKU-RAM-KARTE mit Sottware
16K STANDARD
SZ KARTE mit $ottswitch
288 KARTE
125K KARTE mit Software
2ZS6K KARTE mit Sortware
SI2ZKKARTE mit Software
115.-DM
795.-DM
ade Dermany
Alle Preise incl. 14% MUST
zuzuegl. Porto + Verpackung
Info Gratis
Haendleranfragen erwuenscht
Ing.Buero M.Fricke
Neue Str.13
1888 Berlin 37
Tel. 8387/8015652
leserbkriefe Ey
rückrufen werde. Beim Rückruf
wurde mir erklärt, Apple-Ile-Rech-
ner Revision A deutsch wären
nicht ausgeliefert worden. Auf mei-
nen Einwand und der Durchsage
der Gerätenummer wurde ein er-
neuter Rückruf ausgemacht. Bei
diesem Rückruf wurde mir dann
erklärt, welche Pins zu verbinden
wären und daß die deutsche Revi-
sion A (die es dann also doch gab)
identisch mit der amerikanischen
Revision B sei. Anschließend wur-
de mir nahegelegt, in Zukunft doch
deutsche Zeitschriften zu lesen.
Für die Zukunft würde ich mich
über weitere Artikel freuen, die die
Nutzung der erweiterten 80-Zei-
chenkarte in eigenen Programmen
(Zwischenspeicherung größerer
Matrizen etc.) beschreiben.
Gerhard Hübschle, Stuttgart
Ein solches Programm speziell für
Zahlen-Arrays wird in einem der
nächsten Peeker-Hefte abge-
druckt. us.
Ausgabe und
Eingabe mi:
TYPETERM®
im Slot Ihres
APPLE IVlle
Das bedeutet: Computer-
textverarbeitung von der
Schreibmaschinentastatur'!
Steckerfertig ohne Umbau.
TYPETERN DM479,-
Interface incl. MWSt.
für alle BROTHER-Typenrad-
schreibmaschinen
Paketpreis: DM 1348,-
Schreibmaschine
CE-51 mit TYPETERM
®
QUALITÄT AUS ERSTER HAND.
CE-61 mit TYPETERM ........... DM 1787,-
EM-80 mit TYPETERM ........... DM 2087,-
EM-100 mit TYPETERM ......... DM 3122,-
TYPETERM-Kit für CE-50 ..... DM 468,-
CE-25 mit TYPETERM .......... anfragen
TYPETERM - ein starkes Interface für
starke Maschinen! Alle Cursor- und Otl-
Befehle. 2k ROM auf der Karte f. DOS,
PRODOS, CP/M, PASCAL. Alle Features:
Hoch-/Tiefstellen, autom. Unterstreichen,
var. Zeichen- u. Zeilenabst., autom.
Papierzuführung usw. Ausführl.
Handbuch vorab: 10,— DM auf Konto
14770-306 PGiroA Han (Anrechnung).
TYPETERM ein Produkt von
®
I Kock & Mreches GmbH
——— ——— Posttf., 3004 Isernhagen 4
electronic Telefon 05139-87393
73
Schule und Peeker
Zu Ihrer Zeitschrift möchte ich Ih-
nen gratulieren. Sie hebt sich an-
genehm von den meisten übrigen
Blättern auf diesem Sektor ab. Was
mir gefällt möchte ich kurz aufli-
sten:
— Ihre Artikel vermitteln den Ein-
druck der Kompetenz des Autors.
— Sie bereiten nichts so weit „re-
daktionell“ auf, bis hinter bunten
Bildern und flotter Sprache nur
noch Plattheiten versteckt sind, die
dem Anfänger nichts nützen und
den Fortgeschrittenen ärgern.
— Ihre Autoren haben bei Testbe-
richten den Mut zu eigener Mei-
nung und lassen ihr Urteil nicht in
wolkenreicher Watteverpackung
verschwinden.
— Sie vermitteln nicht den Eindruck
einer Werbeschrift für die Verbrei-
tung von Microcomputern, gleich
welcher Firma.
Was mir noch fehlt und was ich
noch gerne finden würde kommt
aus meiner besonderen Interes-
senlage. Ich unterrichte an der Se-
kundarstufe | Mathematik und Phy-
sik und im Wahlfach Informatik.
Dabei habe ich mir ein Grundla-
Z 80-Karte
Disk -Interface
16KB-RAM-Karte
Clock Karte
genwissen erworben. So liegt z.B.
der Artikel über die Accelerator Ile
noch außerhalb meines Verständ-
nishorizontes. Soweit ich in mei-
nem Umfeld beobachten kann,
breitet sich die Verwendung des
Apples im Schulbereich aus, und
die meisten Lehrer sind keine Spe-
zialisten, aber doch potentielle Le-
ser und Abonnenten. Ihre Rubrik
Schule könnten Sie unter diesem
Gesichtspunkt ausbauen. Dabei
sollte der Bereich vor dem Pro-
grammlisting besser aufbereitet
werden. Ich denke an Strukto-
gramme und Programmablaufplä-
ne. Es wird dadurch für den Nicht-
Profi-Lehrer leichter auswertbar,
z.B. im Peeker 3/85 die „Multipre-
cision“. Mir wäre eine Rechenart
lieber, die aber in dem gleichen
Umfang ausführlich dargestellt
wird. Unter dieser Rubrik Schule
sollte sich ein Autor nicht für „eher
primitive“ Techniken quasi ent-
schuldigen. Die Kunst des Lehrens
ist es, etwas einfach und einsichtig
zu machen, was man selbst kann
und einem einfach vorkommt, ver-
glichen mit dem Wissen und Kön-
nen von Spezialisten. Für Lernen-
= 4 Für Apple Il und Ile
Die Apple-Kompatiblen $
79,—
89,—
129, —
Pal-Karte incı. Modulator 109, —
80 Zeichen Karte mit Softswitch
neue Version mit gest. 149,—
scharfem Bild. Videx-Kompat.
RS 232 Karte m. Kabel
Centronics Interface m. Kabel für
EPSON, Graphikfähig, neue Version
Eprommer für 2716 bis 27128
Wild-Karte knackt und kopiert
geschützte Programme incl. Software
Speech Karte
128KB-RAM-Karte
256KB-RAM-Karte
Info 1/85: 1,- Porto in Briefm.
Alle Preise inklusiv Mehrwertsteuer. & Monate
Garantie. Versand erf. per NN oder Vorkasse
Händleranfragen erwünscht
APPLE
74
kompatibles
109, —
79,—
139, —
99,—
69, —
360, —
598, —
(europlus)
de ist nach meiner eigenen und
auch der Erfahrung mit Schülern
die Aufbereitung einer Aufgaben-
stellung, bis sie „programmierbar“
wird, der schwierigste Teil des We-
ges. Sie sind hier sicher auch auf
die Hilfe von Autoren angewiesen.
Vielleicht könnten Sie hierfür auch
vorhandene Literatur auswerten,
was für eine Fachzeitschrift auch
verdienstvoll ist, da Nicht-Profis
nicht den Überblick haben können.
Insgesamt unterstütze ich Ihre
Konzeption und habe deswegen
Ihre Zeitschrift abonniert.
K.H.Ruppert, Würzburg
Weiter so!
Nach intensivem Studium von
Peeker 3/85 und 4/85 habe ich
mich zum Abonnement entschlos-
sen. Mit dieser Zeitschrift haben
Sie wirklich „den Nagel auf den
Kopf getroffen“, d.h. endlich steht
einmal sachliche Information vor
dem seichten Nachpredigen von
Werbeschriften der Computerher-
steller. Sehr gut: Endlich macht je-
mand Apple deutlich, warum der
Apple II so erfolgreich ist und die
neueren Produkte bei dieser Ver-
Komp 64 6502, 64 K + eingeb.
Komp 2E
Apple 2 E kompatible
Rech. im 2E-Design ohne Firmware
Komp 48 der gute alte Apple!
6502 + 48 K hochwertige
Tastatur, ohne Firmware
kaufspolitik Krücken sind und blei-
ben. Als Anwender muß ich klar
sagen, daß es von Apple selbst
zum IIc keine Alternative gibt.
Die Devise lautet: Machen Sie wei-
ter so!
Dipl.Ing.G.Fischer, Holzmaden
Nicht weiter so!
Auch als Noch-Nicht-Abonnent Ih-
res Peeker sehe ich mit einigem
Interesse der nächsten Ausgabe
entgegen, wird er doch sicherlich
einiges für mich Nützliche enthal-
ten — vielleicht sogar im redaktio-
nellen Teil.
Wie Sie sehen, ist etwas mit Ironie
und Überheblichkeit sehr schnell
gesagt, oder in unserem Fall ge-
schrieben, doch Stil ist das — Sie
werden mir beipflichten — ganz be-
stimmt nicht. Doch warum plagt
mich eigentlich seit der ersten
Ausgabe das Gefühl, daß hier ein
Chefredakteur in für mich persön-
lich zunehmend unerträglicher
Weise sein Podium benutzt, um
ständig zu betonen, wie herausra-
gend gut man selber und wie lä-
cherlich das Bemühen anderer ist?
Nun gibt es den Apple ja schon
1198,
797,—
960,
Z 80 CPU, intelligente mehrfachbel.
Tasten, 15er Zahlenbl.! Ohne Firmware
Komp 64 S wie Komp 64, jedoch
mit abgesetzter eleganter Tastatur 11
mit 94 +94 Funktionen
Motherboard 48 K 8 Slots,
alle IC’s gesockelt, 6502, 48 KB,
440,—
ohne Firmware, fertig, geprüft.
Motherboard 64 K wie
oben, jedoch mit einge-
480,—
bauter Z 80 CPU + 64 K Byte!
PC-48 PC-64 DISTAR-Drive
(europlus + 16K) f. alle II-Typen
199,.899,.
439,.
457,
Klaus Jeschke
Hard-, Software
Viert Straße 2-13
6233 Kelkheim
= (06198) 7523
Info gegen DM 1,40
in Briefmarken
SPRINGMANN
Computer GmbH
Stöckener Str. 199
3000 Hannover 21
05111/791111
Peeker 7/85
eine ganze Weile, und der Kreis
derer, die diesen Rechner in- und
auswendig kennen, ist erfreulicher-
weise so groß, daß man die Zuge-
hörigkeit nicht ebenfalls ständig
elitär vor sich hertragen muß.
Resultiert Ihr unzweifelhaft exi-
stenter Wissensvorsprung in Ap-
ple-Angelegenheiten vielleicht nur
aus der Tatsache, daß sich Ihre
Leser nicht hauptberuflich mit die-
sem Thema beschäftigen können
und einmal monatlich die Brosa-
men aufpeeken, die da vom Re-
daktionstisch fallen?
Trotzdem, die Anzahl der fundier-
ten Aufsätze und das Themen-
spektrum lassen mich über gewis-
se (Un)Feinheiten hinwegsehen.
Daß ich der rein fachlichen Infor-
mation Vorrang einräume, wollen
Sie bitte beiliegender Abonne-
mentbestellung entnehmen. Mit
meiner Meinung möchte ich aller-
dings nicht hinter dem Berg blei-
ben, obwohl ich fast nicht anneh-
me, daß Sie Ihrer eher Pro ausge-
richteten Leserbriefseite ein wohl-
tuendes Gegengewicht verleihen
wollen — oder doch, man weiß ja
nie.
Helge Baars
Es ist richtig, daß ich mich gele-
gentlich über Mißstände mockiere,
und dies werde ich auch weiterhin
tun, denn nur wenn man einen
Fehler ins Rampenlicht zerrt, be-
steht die Hoffnung, daß er auch
beseitigt wird. Dabei liegt es mir
allerdings fern, meine Leser durch
den „Kakao zu ziehen“. Sollte die-
ser Eindruck bei Ihnen entstanden
sein, so möchte ich mich nach-
drücklich bei Ihnen entschuldigen.
Nehmen wir, da Sie kein Beispiel
anführen, die mockierende Äuße-
rung zum Applewriter-IIc-Patch
aus Heft 3/85, S. 35 in Verbindung
mit 5/85, S. 68. Tatsache ist doch,
daß bis heute (Ende Mai 1985) im-
mer noch der ungepatchte Ap-
plewriter Ile an Ilc-Besitzer zu de-
ren Frust verkauft wird. So gese-
hen hätte ich den Daumen noch
viel tiefer in die Wunde drücken
müssen, damit sich endlich etwas
bewegt! us
Erfahrungen mit der Apple-Hot-
line
Als Einwohner Münchens bin ich
weniger durch hohe Telefonge-
bühren der Post behindert, die Ap-
ple-Hotline in Anspruch zu neh-
men und tue das so alle 1-2 Mona-
te. Ich muß sagen, daß meine bis-
herigen Erfahrungen wesentlich
positiver waren als mit allen ortsan-
sässigen Apple-Händlern zusam-
Peeker 7/85
men. Während die meisten Händ-
ler bei Problemen, die auf fehlende
oder unvollständige Systemunter-
lagen (Apple Ilc) zurückzuführen
sind, empfehlen, lieber fertige Pro-
gramme einzusetzen, bei denen
diese Probleme nicht auftauchen
würden, scheint es in der Ingol-
städter Straße auch Fachleute zu
geben, die einem weiterhelfen
können und wollen! Freilich sind
diese Leute auch überfordert,
wenn es Apple-Lieferprobleme
gibt und diese nach irgendeinem
unerfindliichen Lotterieverfahren
erledigt werden. Das liegt aber
eher an der Behandlung Europas
als zweitklassigem Absatzmarkt
durch die Amerikaner — siehe Soft-
ware-Support! Mein letzter Anruf
bezog sich auf ein Problem mit
dem Horizontal-Tabulator beim
Apple-Drucker (Imagewriter), der
nicht funktionieren wollte. Einen
Tag später bekam ich ein Pro-
grammbeispiel zugestellt, mein
Problem war gelöst und stellte sich
als ein Fehler im Drucker-Manual
heraus, in dem ein neuer Funk-
tionscode Ctri-E noch nicht ausge-
wiesen war. Danke, Herr Birkl!
Josef Schön, München
II-Plus-Programm auf dem lic?
Ihre Zeitschrift „Peeker“, die ins-
gesamt recht gut gemacht ist, ver-
suche ich regelmäßig zu lesen,
wobei ich als computermäßig un-
bedarfter Apple Ilc-Neubesitzer
aber gerne gestehe, daß das
Niveau Ihrer Darstellungem meine
derzeitigen Möglichkeiten bei wei-
tem übersteigt.
Ich möchte den Leserbrief von
Herrn Dr. Hickey (Mehr Apple Ilcin
5/85) unterstützen und ebenfalls
für eine umfangreichere Berück-
sichtigung des IlIc-Typs plädieren.
Allerdings sollten Sie hierbei be-
rücksichtigen, daß sich gerade mit
diesem Gerät häufig Apple-Neulin-
ge/Einsteiger herumplagen. Mo-
mentan ärgere ich mich, daß die
angeblich 100%ige Kompatibilität
IIc-Ile ja leider nicht zutrifft. Kon-
kret: EZ-DRAW 3.3, das auf unse-
ren Schulrechnern (Ile) problemlos
läuft, funktioniert nicht auf meinem
Ilc.
Mich interessiert, wie man so et-
was „lauffähig“ macht, wobei ich
mir vorstelle, daß einerseits die
Problematik von allgemeinerem In-
teresse ist und andererseits für ei-
nen gewieften Programmierer die
Aufgabe leicht lösbar sein müßte.
Dipl.Ing.Wolfgang Hannich
Neue Preise # 7
IBM-PC-Systemeinheit+Laufwerk
IBM deutsche DIN-Tastatur
IBM-Bildschirm Color
IBM-PC/XT-Compatible Computer+Zubehör-
Mainboard XT f. 16bit+256K-RAM+8 Slots, Leerkarte
Disk Controller leer (f. 2+2-360KB-Drives)
[efelfel@eie:Tel 1] GR =1274,6: 14753
Parallel Printer Leerkarte
512K-RAM Leerkarte
Mainboard XT-16bit+128K-RAM+8SI. best.+gepr.
(bis 256K-aufr.)
64KB-RAM-Chip-Aufrüstsatz
Disk Controller gepr. (f. 2+2-360KB-Drives)
Color Graphikkarte gepr
Parallel Printer-Karte gepr. o. Kabel
512K-RAM-Karte gepr. (OKB)
Multi VO Karte (Par.+Ser.+Uhr gepuffert) gepr
Funktionstastatur dt. oder ASCII+15er Block
130W-Netzteil mit eingebautem Ventilator
360KB-Diskdrive Slimline
XT-128K-16bit Rechner (bis 256K-aufrüstbar) +360K-Drive
+F. Tastatur im IBM-look like Geh.+130W-Netzteil
Software+ Manual für IBM+compatible Geräte
Microsoft flight simulator
Lotus 1-2-3
Framework
APPLE-BUS COMPUTERPLATINEN+PERIPHERIE
Motherboard durchkontaktet mit Lötstoplack r
M-board Il 48K, gesockelt, vollbest.+gepr. 545,--
M-board Il 64K+Z80 CPU, gesockelt, v.best.+gepr 685,--
M-board Ile 64K vollbestückt+gepr. 945,--
APOLLO Il Kunststoff-Leergehäuse 135,--
APOLLO Il-Leergeh. incl. Funkt.-Tast. 275,--
Leerplatine: 16K-RAM, Z80/CPU-, Controller DOS 3.3,
Parallel-Druckerkarte, Ser. Int. V24, 802/24Z-Karte
PAL-Modulatorkarte, je 18,95
Entwicklungslochraster-Leerplatine 49,--
16K-Speicher-Karte geprüft 97,--
Z-80 CPU-Karte geprüft 87,--
Controller DOS 3.3-Karte geprüft 88,--
Auto-Controller DOS 3.2/3.3-Karte gepr. 145,--
Parallel-Drucker-Karte+Kabel geprüft 119,--
8bit par. Grappler-Int.+64K-Buffer+Kabel gepr. 575,--
Seriell-Interface-Karte V24 geprüft 175,--
80-Zeichen/24-Zeilen-Karte geprüft 145,--
80Z/24Z-Karte+Softswitch-Schalter Leerplatine 49,--
80Z/24Z-Karte+Softswitch-Schalter geprüft 178,--
IEEE-488 Int. Karte gepr. 375,--
PAL-Modulator/Color-Karte geprüft 175,--
128K Speicher-Leerkarte 89,--
128K-Speicher-Leerkarte+Software 145,--
128K-Speicher-Karte+Software geprüft 439,--
256K-Speicher-lLeerk+4 Spezial ICs+Software 335,--
256K-Speicher-Karte+Software geprüft 898,--
EPROM-Bumer (2708/16/32/64) geprüft 215,--
UHF/TV-Modulator universell 27,50
Lüfter anclipsbar (220 V)
APOLLO // (48K)+UHF-Mod.+Gr/Kl vollbest.+gepr.+F.-T.
APOLLO // (64K)+Disk II F+Contr.+12”-Monitor
APOLLO //A (48K)+Gr/Kl+15er-Tastatur vollbest.+gepr.+F.-T. 109
APOLLO //A (64K)+Disk II F+Contr.+12"-Mon 1
Aufpreis für frei programmierbare Funktionstastatur
plus 4 Cursor-Tast Lizle/äKey77.\
APOLLO // ASKF (48K) Sep. Keyboard+Gr/Kl+
15er-Bl.+Funkt.-Tasten im „IBM-look like“ Gehäuse
Aufpreis für M-board // 64K+Z80 CPU
APPLE-DuoDisk, 2 x 143 KB+Controller orig. 21
APPLE-Disk // Laufwerk+Contr.+Kab. DOS 3.3+ProDOS orig. 777,--
APPLE-Disk // (2. Laufwerk) orig. 666,--
Disk //+Contr.+Kabel DOS 3.3 (Siemens) im Geh. 593,--
Disk // (2. Laufwerk, Siemens) im Geh. 498,--
Disk //F+Contr.+Kab. DOS 3.3 (1/2 Höhe) im Geh. 524,--
Disk //F (2. Laufwerk, 1/2 Höhe) i. Geh. 429,--
APPLE ProDOS HB+Disk orig. 69,--
Erphi Duo-Disk 1,2 MByte incl. Netzteil+Contr. 2148,--
Erphi AFDC 2 Controller 288,--
Maus f. Apple // incl. Manual+Software 188,--
APPLESOFT+Turorial+Reference Manual engl. 75,--
APPLE-DOS 3.3 Manual engl. 25,--
APPLE-Pascal Reference+Operating Manual engl. 48,--
APPLE-Pascal USCD 1.1. Disks+Manuals orig. 179,--
APPLE-Pascal Reference Hb. dt. 49,--
APPLE-Pascal Language Hb. dt 39,--
APPLE-FORTH Manual engl. 69,--
APPLE-Fortran Manual engl. 69,--
CP/M-Software Vol. IH, Manual engl. 69,--
VIDEX 80Z/Z-Karte Manual engl 25,--
APPLE // Pascal-Handbuch deutsch (te-wi) 59,--
APPLE //-Anwenderhandbuch deutsch (te-wi) 56,--
6502-Programmier-Handbuch deutsch 45,--
6502-Anwendungen Handbuch deutsch (Rod.Zaks) 38,--
Software+ Manual f. APPLE+compatible Geräte
apple how to, apple soft tool kit, cp/m basic compiler, cbasic,
dbase // ver. 2.4, wordstar+ mailmerge + spellstar mit installprogramm,
apple logo, datastar, calcstar, pfs file, pfs grapg, pfs retport, apple
fortran, cp/m c language, spitfire simulator, c-programming language,
flight simulator, visicalc, visischedule, visitrend, multiplan, supersort,
microsoft cobol 80, microsoft fortran 80, dgraph+dbase utility.
APOLLO //e (64 K) PAL+15er Block * NEU * NEU * NEU *
APOLLO //e 128K+802/24Z-Karte
APPLE //e (64K) PAL
APPLE //e (64K)+Disk Il F+Contr+12”-Monitor
802/24Z+Softswitch+64K-RAM-Karte geprüft
APPLE //c (128K)
Z80 Karte gepr. f. APPLE //c
Macintosh System (128K)
Macintosh System (512K)
PSON RX 80, 8bit/parallel
EPSON RX 80F/T, 8bit/parallel
EPSON RX 100, öbit/parallel
EPSON FX 80F/T, 8bit/parallel
PSON FX 100, 8bit/parallel 1739,--
EPSON Traktoraufsatz für FX 80 129,50
APPLE/EPSON-Drucker Graphic-Interface+Kabel
MX 80/82, FX/RX 80 Spezialfarbband-Kassette
BROTHER-Typenraddr. HR 15XL 8bit/par. neustes Mod
STAR SG10, 8bit/par
Zenith ZVM 123 gr. 12” oder Zenith ZVM 122 or. 12” 15 MHz
SANYO DM 2212 12” orange 15 MHz
APPLE // Video-Mon. 12" 20 MHz, entspiegelt orig
5,4" 1D-Disk-Soft-verstärkt, Neutral, 1. Wahl 10er Pack
514” 1D-Disk-Soft-verstärkt, Neutral, 1. Wahl 100er Pack i
514” 1D-Disk-Soft-verstärkt, Neutral, 1. Wahl 1000er Pack 2799,--
514” 2D-Disk-Soft-verstärkt 10er Pack 47,50
514” 2D-Disk-Soft-verstärkt 100er Pack
gnetics-Disketten-verstärkt 1. Wahl
ektoriert 10er Pack
lee k
N -Softsektoriert er Pack
a” ID-Softsektoriert 100er Pack
3M-Scotch-Disketten - verstärkt in Box+Aufkl. 1. Wahl
312” Microdisketten 10er Pack. 149,50
5Y4” 1D-Disk-Soft- o. Hardsektoriert 10er Pack 48,90
514” 1D-Disk-Soft- o. Hardsektoriert 100er Pack 478,--
514” 2D-Disk-Soft- 0. Hardsektoriert 10er Pack 69,90
514” 2D-Disk-Soft- 0. Hardsektoriert 100er Pack 668,-—-
514" 1/96 Softsekotoriert 10er Pack 81,50
514” 1/96 Softsekotoriert 100er Pack 769,--
5,4” 2/96 Softsekotoriert 10er Pack 88,90
5,4” 2/96 Softsekotoriert 100er Pack 849,--
8” Soft- o. Hardsektoriert 10er Pack 67,--
8” Soft- o. Hardsektoriert 100er Pack 649,--
8” 1D-Disk-Softsektoriert 10er Pack 86,--
8” 1D-Disk-Softsektoriert 100er Pack 829,--
8” 2D-Disk-Softsektoriert 10er Pack 99,--
8" 2D-Disk-Softsektoriert 100er Pack
3M-Scotch 514” Flüssig-Reinigungsset (2 Disk.)
BASF Disketten - verstärkt in Box+Aufkleber 1. Wahl
514" 0.8" Soft-o.H yriert 10er Pack
5 so S
ert
0e
Ta K 01212 27: 1177
oriert 100er Pack
10er Pack
rt 10er Pack
ua Lole7-72 27-1019
2 MByte 10er Pack
Talfelelate Bio EIS CH art iTe)
Ya" Disket Archivbox für 10 Disks
Va” Disketten-Archivbox 10er Pack B
514” Disketten-Archivbox für 15 Disks 19,95
54” Disk-Karteikasten Kunststoff (ca. 80 Disk) 29,95
514” Disk-Karteikasten Kunststoff (ca. 80 Disk) 49,95
514" 3M-Disk-K.K. abschließbar (ca. 50 Disk)
514” Disk-K.K. Rauchglas, abschließb. (ca 80 Disk)
4000 Et.-Aufkl. (10
16000 Etiketten-Au
4000 Etik.-Aufkl. einrei
OSZILLOSCOPE HAMEG ab Lager
Bei Vorauszahlung frei Empfangsstation unversichert in der BRD, aus-
genommen Papier und Etiketten, sonst N.N.+V.S. ab DM 30,--
R, A -Yealgejalfe a
Telex: 0772642 aaa-d
Habsburgerstraße 134
7800 FREIBURG, Tel. (07 61) 276864
Bauelemente - Bausätze - uP's
Meßgeräte - Zubehör - Fachliteratur
Fachgeschäft für Elektronik + Mikrocomputer
Der Einsteiger
Apple lle 64 KB
Apple Monitor Il
Apple Disk Il
m. Contr.
DM 3998,-
Der Vielseitige
Apple Macintosh
128 KB
incl. MacPaint/
MacWrite
Tastatur und Maus
DM 6776,-
CHILE EHE EEE ICHE
CHCHUDIC TUE DEE DIE DC Due DE Dar Due Da DE DE DE DE DE DE DLIICH
KON DD De DE DE DD DER DD DB DD BEL DIL DE ED
ED Du DD Dur Dar Da Dur Da Due DE DD DE DD}
BED DE Du Dur DE Du DE DE Due Du DE DE Dee De)
..
...
...
DD HE N DE Due DE Du DuE DuE Du DE DE Du DU DIE DIE DE DE DE DE DEE DE DE DE}
pe; imagewiiter;
Si E-&raphike-
Die Zuverlässige
80 Zeichen/64 KRAM
m. Pseudo-Floppy-
Software u. ausführ-
lichem Handbuch
Der Schöne
Brother HR 15 XL
Typenraddrucker,
15 Z/sec.
DM 1398,
Bei Abnahme von größeren
Stückzahlen noch
günstigere Preise
möglich.
Hamburger
Computer
Versand
2 040-7928226
Postfach 610125
2000 Hamburg 61
75
Wenn ein Programm erstens die
Sprachkarte = 16K-Erweiterung
und zweitens die 80-Zeichenkarte
nicht benutzen, dann können Sie
alle älteren Programme, die ur-
sprünglich für den Apple II Plus
gedacht waren, problemlos ver-
wenden, wenn Sie FPBASIC in die
Sprachkarte laden:
1. DOS 3.3 booten
2. Ctrl-Reset drücken (Damit geht
man sicher, daß die 16K-Erweite-
rung schreibfähig gemacht wird.)
3. BLOAD FPBASIC, A$DO00
4. CALL -151
5. C083 C083
6. Ctrl-C
7. Ab jetzt kein Ctrl-Reset und kein
PR#3 mehr!
8. Altprogramm mit RUN XXX oder
BRUN YYY starten.
Es versteht sich, daß dieses Ver-
fahren nur dann funktioniert, wenn
man ungeschützte Programme
verwendet, die nicht mit PR#6 ge-
bootet werden müssen. Ferner be-
achte man, daß man das 50 (fünf-
zig) Sektoren umfassende FPBA-
SIC von der alten System-Master-
Diskette laden muß (also nicht ein
um das Monitor-ROM verkürztes
FPBASIC!). Schließlich sei darauf
hingewiesen, daß sich Ile-Pro-
gramm, die nicht auf dem Ilc lau-
fen, auch dann nicht simulieren
lassen, wenn man den |le-ROM-
Inhalt in die Sprachkarte lädt. Zu
diesem Zweck müßten nämlich
zahlreiche Adresse geändert
werden.
us
76
MEGACORE
Festplatte mit 10 MBytes
getestet von H. Grumser
Die Firma Compu Shack vertreibt
eine 10-MByte-Festplatte engli-
scher Herkunft mit dem Controller
MEGABOARD, der von der Frank
& Britting Elektronik Entwicklungs-
GmbH entwickelt (und der Peeker-
Redaktion auch von dort zu Test-
zwecken zugesandt) wurde. Die
Harddisk wird an Stelle des Apple-
Netzteils eingesetzt und über-
nimmt dann die Spannungsversor-
gung des Computers. Der Liefer-
umfang umfaßt neben einem deut-
schen Handbuch auch die entspre-
chende Software (5,25-Zoll-Dis-
ketten), die zur Initialisierung und
Konfigurierung der Platte erforder-
lich ist.
Inbetriebnahme
Laut Angabe von Compu Shack
kann der Einbau in drei Minuten
vollzogen werden. Wer das ca. DM
5000.- teure Gerät und seinen
nicht minder wertvollen Apple nicht
aufs Spiel setzten möchte, muß mit
einer halben Stunde rechnen.
(Herr Grumser ist Physiker, also
kein „blutiger Laie“. Anm.d.Red.)
Die erste Inbetriebnahme läßt eini-
ge Sekunden an der vollbrachten
Arbeit zweifeln, da der gewohnte
Piepston zunächst ausbleibt. (Vor
der Versorgung des Rechners wird
das Laufwerk hochgefahren.) Die
Präsenz der Harddisk kann stets
durch das Laufwerksgeräusch ver-
nommen werden. Wen dieses
Summen stört, kann die Festplatte
„auslagern“ und unter dem
Schreibtisch deponieren.
Nach dem Booten der mitgeliefer-
ten Diskette in einem Floppy-Disk-
Laufwerk kann die Harddisk initiali-
siert werden, wobei der Inhalt der
Diskette auf die Festplatte kopiert
wird. Somit steht in jedem Fall ein
DOS-Volume zur Verfügung, das
beim nächsten Kaltstart gebootet
wird.
Betriebssysteme
Für die künftige Arbeit mit der
Festplatte sollte man nach dem In-
itialisieren Bereiche für die ver-
schiedenen Betriebssysteme ein-
richten. Eine spätere Änderung
dieser Organisation ist mit einem
erheblichen Datentransfer auf der
Platte verbunden und kann zum
Verlust von Einträgen führen, da
die vier Bereiche stets aufeinan-
derfolgend angeordnet sind. Diese
Konfigurierung erfolgt durch Aufruf
der einzelnen Betriebssystem-Ma-
nager aus dem Hauptmenü:
DOS 3.3 — Da unter DOS 3.3 keine
größeren Datenmengen verwaltet
werden können, wird dieser Be-
reich in einzelne Volumes unter-
teilt, die dann durch Volume- und
Drive-Nummer angesprochen
werden. Die somit mögliche Simu-
lierung von 2 & 255 Floppy-Disk-
Laufwerken (je 140 KBytes) er-
laubt die Benutzung der komplet-
ten Festplatte unter DOS 3.3.
CP/M - Unter CP/M (Version 2.2
56K) können 6 Volumes (A-F) mit
unterschiedlicher Größe verwaltet
werden (128-7680K pro Volume in
128K-Schritten). Um weiterhin auf
„normale“ Disketten zugreifen zu
können, besteht die Möglichkeit,
ein oder mehrere Volumes zu des-
aktivieren, d. h. der Zugriff erfolgt
dann auf das entsprechende Dis-
kettenlaufwerk und nicht mehr auf
die Festplatte.
UCSD-Pascal — Der Zugriff unter
UCSD-Pascal (Apple-Pascal 1.1)
muß wie oben eingestellt werden.
An Stelle der Volumes treten hier
die Units 4, 5, 9, 10, 11 und 12, die
mit beliebiger Länge konfiguriert
werden können.
ProDOS - Die Einrichtung eines
ProDOS-Bereichs (ProDOS Ver-
sion 1.0.1) ist wegen der Konzep-
tion dieses Betriebssystems für
größere Massenspeicher sehr ein-
fach. Es genügt die Eingabe der
gewünschten Größe, die dann als
ein Volume verwaltet wird.
Welches Betriebssystem beim
Kaltstart gebootet wird, kann mit
Hilfe des Boot-Managers gewählt
werden. Die mit einer der mitgelie-
ferten Disketten gepatchten Syste-
me müssen jedoch vorher auf die
Harddisk kopiert werden. Spezielle
Treiberprogramme erlauben die
Umschaltung von einem Betriebs-
system zum nächsten ohne Kalt-
start, wobei stets der Weg über das
beim Initialisieren angelegte DOS-
3.3-Volume beschritten wird.
Die entsprechende Patch-Soft-
ware für andere Betriebssystem-
Versionen ist in Vorbereitung und
kann individuell erfragt werden.
Handbuch
Das spiralgebundene Handbuch
(branchenübliches Schönschreib-
drucker-Printout) beschreibt auf
ca. 50 Seiten sehr ausführlich die
Anwendung der mitgelieferten
Programme und die Inbetriebnah-
me der Harddisk bezüglich Forma-
tierung und Konfigurierung. Auf
Schwierigkeiten bei der Umorgani-
sierung der Platte wird ebenso ein-
gegangen wie auf die Erstellung
von Sicherungskopien.
Als besonders hilfreich für Assem-
bler- und System-Programmierer
erweist sich die Beschreibung des
WD1010-Prozessors von Western
Digital als Controllerchip und eine
Erläuterung zur Programmierung
des Sektorzugriffs auf Systemebe-
ne. Die transparente Dokumentie-
rung erinnert an die „gute alte
Apple-Zeit“.
Peeker 7/85
Übertragungsrate
Die Übertragungsrate kann nur auf
Systemebene exakt ermittelt wer-
den. Eine weniger zeitaufwendige
Lösung ist die Verwendung eines
Benchmark-Tests. Die zwei kurzen
Programme WRITE.TEST und
READ.TEST ergeben unter Pro-
DOS eine Übertragungsrate von
ca. 4000 Bytes/s beim Schreiben
und ca. 15400 Bytes/s beim Le-
sen. Dies sind reine Brutto-Werte,
da die systeminterne Verwaltungs-
zeit (insbesondere die Bearbei-
tungszet des Applesoft-Pro-
gramms) mit gemessen wird. Ein
ähnlicher Test bei der Profile (in
„Apple ProDOS für Aufsteiger“,
5.18, Hüthig Verlag) ergab etwa
die gleichen Werte.
Anmerkung zur MEGACORE/ME-
GABOARD unter ProDOS: Die
Star Delta-10
Harddisk wird unabhängig vom
Controller-Slot unter „S7, D1“ an-
gesprochen (gilt auch für DOS
3.3). Die RAM-Disk bleibt erhalten.
Der Gerätetreiber wird über
$BF1E/$BFIF angesprungen und
befindet sich auf der Controller-
Karte ab $C7DO.
Fazit
Die Kombination aus MEGACORE
und MEGABOARD bietet einen
kompatiblen Übergang auf Mas-
senspeicher höherer Kapazität.
Die Übertragung erfordert nur we-
nige Eingriffe in bereits vorhande-
ne Programme, da die Anpassung
an die verschiedenen Betriebssy-
steme unter Einhaltung der Spiel-
regeln vorgenommen wurde. Für
Anwender mit erhöhten
Datenmengen ist dieses System
daher empfehlenswert.
und Grafstar-Interface
getestet von Karl-Walter Bott
Gerade bei Matrixdruckern ist die
Angebotsvielfat der einzelnen
Hersteller für den Käufer kaum
noch zu überblicken.
Vor geraumer Zeit konnte man Ma-
trixdrucker noch in zwei Gruppen
einteilen. Zur ersten Gruppe ge-
hörten die preiswerten, langsamen
Drucker mit mäßigen Grafikfähig-
keiten und minderer Ausgabequa-
lität. Zur zweiten Gruppe zählten
die Produkte, die durch ein sehr
gutes Schriftbild, hohe Grafikauflö-
sung und Schriftqualität überzeug-
ten, aber weniger durch einen gün-
stigen Preis. Mit dem Star Delta-
10 erwirbt man einen Matrixdruk-
ker, der mehr kann, als nur Listings
zu Papier bringen, und dabei ein
günstiges Preis-Leistungsverhält-
nis aufweist.
Das Aufstellen des Druckers be-
reitet keine Schwierigkeiten, wenn
man die mitgelieferte deutsche Be-
dienungsanleitung zur Hand
nimmt.
Auf der Rückseite des Gerätes be-
finden sich die zwei Anschlüsse
der Schnittstellen zum Computer.
Peeker 7/85
Der Delta-10 ist serienmäßig mit
einer Parallelschnittstelle und ei-
nem seriellen Interface RS232C
ausgestattet. Zur Standardausrü-
stung gehört auch ein 8K großer
Druckerpuffer. Ist die Verbindung
zum Computer hergestellt, müs-
sen noch die drei DIP-Schalter
(DIP = Dual Inline Package) ge-
setzt werden, von denen nur einer
auf der Rückseite frei zugänglich
ist. Die beiden anderen können nur
nach dem Abnehmen der Gehäuse-
abdeckung bedient werden. Mit
den DIP-Schaltern können Para-
meter voreingestellt werden, mit
denen der Drucker beim Einschal-
ten initialisiert wird: Zeichensatz,
Formularlänge, Zeichenabstand,
Zeilenvorschub, Auswahl der
Schnittstelle sowie Betriebsart und
Baud-Rate bei seriellem Betrieb.
Neben dem normalen ASCII-Zei-
chensatz gibt es 83 internationale
Zeichensätze (bzw. deren landes-
spezifische Sonderzeichen wie B,
A, Ö, U usw.), 96 Kursiv-Zeichen,
32 Blockgrafik-Zeichen, 64 Spe-
zial-Zeichen sowie 2 mal 96 frei
programmierbare Zeichen.
4 TESTDERICHTE
WRITE.TEST (255s)
PRINT CHR$ (4)"OPEN XXX"
PRINT CHR$ (4)"WRITE XXX"
X$ = "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA”"
FOR X = 1 TO 5ß@®: PRINT X$: NEXT
50 PRINT CHR$ (4)"CLOSE"
60 PRINT CHR$ (7)
READ.TEST (65s)
FOR Y = ® TO 99: X = X x 1009
PRINT CHR$ (4)"BLOAD XXX, TTXT, Al0000,L10009,B"xX
NEXT
PRINT CHR$ (4)"CLOSE"
PRINT CHR$ (7)
Normale Schrift
Überall ist Flatz
für manchen klugen Satz.
gedehnte Schrift
rlatz
H-lıiagem BSatı .
iıby er alı a st
# kım meamchem
kursiweschrift
überall ist Platz
fin manchen klugen Setzr..
Elite Schrift
überall ist Flatz
für manchen klugen Satz.
Komprimierte Schrift
überall ist Platz
für manchen klugen Satz.
Doppeldruck
überall ist Platz
fiir manchen klugen Satz.
Her vorgehobener Druck
überall ist Platz M
für manchen klugen Satz.
Unterstreichen
mass ha sn nmmeiemnnnnn N tn tete h ann rauen manner menu eneee ee
tür manchen klugen Satz.
Hochgestellt
yeaı?
Tiefgestellt
H=0
#7
Die Vielzahl der Druckmodi bietet
jedem Benutzer etwas, vor allem,
weil diese untereinander gemischt
werden können. Alle Schriftarten
und Druckmodi sind vom Pro-
gramm her auszuwählen. Die
Steuerzeichen sind weitgehend
Epson-kompatibel. Der Zeilenvor-
schub ist ebenfalls programmier-
bar. Die kleinste Schrittweite ist n/
144 Zoll.
Das Drucken erfolgt bidirektional
mit einer Geschwindigkeit von ma-
ximal 160 Zeichen pro Sekunde.
Die maximale Anzahl von Zeichen
pro Druckzeile beträgt 132. Die
Druckgeschwindigkeit zusammen
mit dem Druckerpuffer dürfte auch
Benutzer zufrieden stellen, die
überdurchschnittlich viel zu druk-
ken haben.
Um Grafiken auf das Papier zu
bringen, gibt es neben der Mög-
lichkeit, Zeichenmuster selbst zu
definieren, den Bit-Image-Grafik-
modus. Die maximale Auflösung
durch die Einzelnadelansteuerung
aaa electronic gmbh, Freiburg .
ccp-datentechnik, Hamburg
Copy-Team GmbH, Erlangen .
CP/D oHG, Düsseldorf
U. Dobbertin, Brühl
beträgt 1920 Punkte und ist auch
auf dem Papier durchaus überzeu-
gend.
Als weitere Besonderheiten des
Druckers sind noch Macro-Instruk-
tionen zu nennen, mit deren Hilfe
Steuersequenzen gespeichert
werden können, sowie der einge-
baute Selbsttest.
Der Delta-10 verarbeitet fast alle
gängigen Papierarten und Formu-
larabmessungen: Einzelblatt, Rol-
lenpapier und Endlospapier. Als
Farbband dient ein normales
Schreibmaschinen-Farbband.
Nach so vielen positiven Aspekten
sollten die Nachteile des Druckers
nicht verschwiegen werden. Zu-
nächst ist hier die Anordnung des
'Traktors zu nennen. Der Traktor
wird oberhalb des Druckkopfes auf
den Drucker aufgesetzt. Der Nach-
teil dieser Anordnung liegt in der
mangelnden Ausnutzung des End-
lospapiers. Will man den Druck am
Anfang einer neuen Seite (Perfora-
tion) beginnen, wird jedesmal das
75
15
68
15
51
D.O.S. Computersysteme, Schwäbisch Hall. . . . ....32
Forth-Systeme A. Flesch, Titisee-Neustadt . . . . . .. 15
Ingenieurbüro Fricke, Berlin
73
Hamburger Computer Versand, Hamburg. . . . .....75
IBS Computertechnik, Bielefeld
Interkom electronic, Isernhagen
Intus, Waldshut-Tiengen .
Klaus Jeschke, Kelkheim
E.-W. Meyer, Frohnhausen
48
73
49
74
49
Micromint Computer GmbH, Erkrath . . . 2 2.2..15
U. Mohwinkel Electronic, Leverkusen . . . 2 22..2...49
Pandabooks, Berlin
Pandasoft, Berlin
r + r electronic, Heidelberg
R.v. Decker’s Verlag, Heidelberg
Röckrath Microcomputer, Aachen
11
13
61
56
49
Springmann Computer GmbH, Hannover . . . . .......74
Summagraphics, München .
te-wi-Verlag GmbH, München .
Tombstone-Micro, Berlin
Ueding electronics, Menden
. 82
.uU4
51
22
Einem Teil dieser Ausgabe liegt ein Prospekt der Firma Interdata
GmbH, Singen bei.
Wir bitten unsere Leser um Beachtung.
78
erste Blatt verschenkt, da der
Druckkopf unterhalb des Traktors
angeordnet ist. Bei der Verarbei-
tung von Einzelblattpapier muß der
Traktor abgenommen werden. Das
Einziehen des Einzelblattes gestal-
tet sich etwas schwierig, zumin-
dest, wenn das Blatt exakt horizon-
tal und vertikal ausgerichtet sein
soll, da keine Markierung am Ge-
häuse angebracht ist. Eine aufge-
klebte Plastikschiene, mit einer
Längeneinteillung am Gehäuse
oberhalb der Walze, würde hier
Abhilfe schaffen. Um das Blatt ver-
tikal zu justieren, muß das Blatt so
weit eingezogen werden, daß die
Enden parallel ausgerichtet wer-
den können. Danach kann man
dann das Blatt in die erste Druck-
zeile zurückdrehen. Dies empfiehlt
sich mit Rücksicht auf die Drucker-
mechanik nur, wenn der Drucker
ausgeschaltet ist. Also bei z.B. 20
Serienbriefe 20mal Ein- und Aus-
schalten, was auch nicht gerade
die Lebensdauer der Elektonik er-
höht.
Ansonsten machen Mechanik und
Elektronik einen soliden Eindruck.
Zur Kommunikation zwischen Ap-
ple-Computern und Star-Druckern
wird das Parallel-Interface Graf-
star angeboten. Das Interface er-
möglicht eine Hardcopy von den
Grafik- und Textseiten, wobei auch
eine Vergrößerung, Drehung und
Invertieren der Grafik-Hardcopy
möglich ist. Die Steuerzeichen
sind weitgehend Epson-kompati-
bel. Eine Besonderheit ist die Mög-
lichkeit, die Ausgabe über eigene
Assembler-Routinen umzuleiten,
die entweder ab $0300 oder
$D000 der Language-Card begin-
nen können.
Wenn das Interface in Slot 1 instal-
liert ist, treten keine Probleme auf.
Die Firmware arbeitet unter CP/M,
UCSD, DOS und ProDOS ein-
wandfrei. Mit den testweise aus-
probierten Programmen Apple-
works, Applewriter und Wordstar
3.3 funktionierte das Grafstar-In-
terface ohne Probleme.
...„ in eigener Sache:
die Nachfrage nach dem vergriffe-
nen Heft 1/84 ist groß. Ab sofort
können Sie eine Heftkopie direkt
beim Verlag bestellen.
Preis für das Inland:
DM 10,- inkl. Versandkosten
für das Ausland:
DM 12,- inkl. Versandkosten
eventuelle Luftpostzuschläge zzgl.
Der nächste Peeker
Heft 8/1985
erscheint am
22. 7. 1985
Peeker 7/85
Hucthig-FACHBUCH-TIP
DELHRETEHEE
.@ de min 2 22 _
für Aufsteiger
Mit ausführlichen
Ol TeTe ST a ud dorelg:Tanlaslelikzjellällzie
IS
—
N
„Apple ProDOS für Aufsteiger“ ist Ebenso ausführlich wird die externe Apple ProDOS
der Nachfolgeband zu „Apple DOS Speicherorganisation geschildert “ z
3.3 — Tips und Tricks“. Applesoft- (Spuren, Sektoren, Blocks, Directory- für Aufsteiger
Programmierer, die unter DOS 3.3 Struktur, Volume Bit Map, Dateistruk- ee
gearbeitet haben, werden sich turen usw.). Schließlich wird das MLI Mit ausführlichen Programm-
schnell an ProDOS gewöhnen, da (Machine Language Interface) mit beispielen
ProDOS und DOS 3.3 in dieser Hin- zahlreichen praktischen Anwen-
sicht weitgehend kompatibel sind. dungsbeispielen erläutert. Insgesamt von Ulrich Stiehl
Dagegen müssen Assembler- enthält ProDOS-Buch ca. 70 Seiten R
Programmierer völlig umdenken. mit eigens für dieses Werk entwickel- Band 1: 2. geänderte Auflage 1985,
Deshalb liegt das Schwergewicht ten Programmen. 208 S., kart., DM 28,—
dieses Nachfolgebandes auf der As- Im zweiten Teil werden die Basic-
semblerprogrammierung und der System-Befehle für Applesoft-Pro-
minutiösen Darstellung der ProDOS- grammierer systematisch erläutert.
internen Systemadressen, die jedoch Allerdings wird die Kenntnis von +
auch für Applesoft-Programmierer „Apple DOS 3.3“ vorausgesetzt. “
von großer Bedeutung sind. „ProDOS für Aufsteiger“ ist deshalb RE
Im ersten Teil wird zunächst ein all- nicht nur für Assembler —, sondern DRS
gemeiner Überblick über das neue auch für fortgeschrittene Appelsoft- ch ® as
„Professional Disk Operation Sy- Programmierer ein unentbehrliches E RSINH
stem” gegeben. Im Anschluß daran Nachschlage- und Handbuch für die s Nix =
folgt eine Gegenüberstellung der Programmierpraxis. DIENT
Geschwindigkeit des Diskettenzu-
griffs. Dann wird die interne Speicher -
organisation detailliert beschrieben
(Boot-Vorgang, Zero-Page, ProDOS-
Vektoren, Basic-System-Puffer,
Basic-System-Global-Page, Basic-
Command-Handler, I/O-Vektoren,
ProDOS-Global-Page, Language-
Card-Organisation, Interrupt, Disk-
Driver, Reboot-Programm usw.). ar
APPLE |
ADCAL
Betriebssystem
APBLEI
PASCAL
Apple II Betriebssystem,
272 Seiten, DM 49,-
Apple II Sprache,
216 Seiten, DM 39,-
Pascal 1.2 Addendum, 112 Seiten,
DM 36,-
PPLE II PASCAL
Betriebssystem und
Sprache
Erstes deutsches Referenzwerk sämtlicher Befehle
und Systemroutinen von Apple II Pascal — mit Adden-
dum einschließlich Version Pascal 1.2!
Gültig für Apple II, I Plus, He einschließlich der
128K/80 Zeichen-Konfiguration.
Betriebssystem kommentiert ausführlich und in
Deutsch Funktion und Benutzung der fast 60 System-
routinen’des Apple II Pascal Betriebssystems.
Sprache ist das vollständige, deutsche Referenzwerk
der „Apple Pascal“-Programmiersprache mit u.a. Infor-
mationen über professionelle Pascal-Programmierung,
Turtlegraphics, Programmbibliothek etc.
In Vorbereitung: Addendum Pascal 1.2, ein
Zusatz zum Buch „Betriebssystem“ für 1.2-Benutzer in
Deutsch.
„Nach Unterlagen von Apple Deutschland hergestellt”
te-wi Verlag GmbH
Theo-Prosel-Weg Il
8000 München 40
ul
Weiterführende Literatur...
Das Ver,
APPLE II - Handbuch
(L. Poole)
Erst mit Hilfe dieses Leitfadens werden Sie
Ihren Apple II erfolgreich einsetzen, denn
Text und Bildmaterial gehen weit über das
hinaus, was herstellerseitig an Literatur
angeboten wird.
LOGO -
Jeder kann programmieren
(Daniel Watt)
.| Buch des Jahres in den USA. Für die
» Computer APPLE II, C-64, IBM PC, ATARI
| bis 520 ST., TI-99 und CPC 464/664.
Hochwertiges Textbuch für Logo-Kurse für
zu Hause und im Lehrbereich.
Fe 384 Seiten, A4, DM 59,-
Neu überarbeitet und jetzt um die spezifi-
schen Eigenheiten der Modelle Ile und Ilc
2] erweitert. 500 Seiten, Softcover, DM 66,-
tm 4298
APPLE II PASCAL -
Eine praktische Anleitung
(A. Luehrmann, H. Peckham)
ı Unentbehrlich für alle, die die Programmier-
1 sprache PASCAL lernen wollen und
Zugang zu einem Apple-Computer haben.
544 Seiten, Softcover, DM 59,-
| Computer für Kinder
(Sally Greenwood Larson)
Ein Buch für Kinder. ihre Lehrer
und Eltern.
„Computer für Kinder“ richtet
sich an Kinder im Alter von 8 bis
13 Jahren, für deren Interesse an
Computern dieses Buch bewulßst
oeschrieben wurde.
Unterhaltsam und leicht verständlich.
A4 quer. Fadenheftung. DM 29.80
APPLE II - Bewegte 3D-Graphik
(Phil Cohen)
Selbstentworfene Graphiken und Dia-
gramme - animiert oder als Standbilder —
eben oder räumlich: alle erforderlichen
BASIC-Programme mit Erklärung finden
Sie in diesem Buch.
200 Seiten, Softcover, DM 49,-
Apple Maschinensprache
Für BASIC-Programmierer der einfachste
Zugang zur Muttersprache des Apple. Wesent-
lich schnellere Maschinenprogramme, direkte
Manipulation des Mikroprozessors 6502 im
Apple — als Brücke dorthin benötigt dieses
Buch nur die drei BASIC-Befehle, POKE,
CALL, PEEK. D. Inman/K. Inman. DM 49, —
APPLE
MASCHINEN
SPRACHE
DON INMAN - KURT INMAN
| NEU: REPARATURANLEITUNG
COMPUTER: APPLE II, I PLUS
DM 29,80
Noch im Programm:
Eye or 2111111112 02 1011 Wa EX 221 110) 03 BD) Bo) Run
VisiCalc, 50 Programme auf Diskette, DM 79,-
In Vorbereitung:
Macintosh Programmier-Handbuch DM 59,-